Sputnik es una biblioteca de escasos núcleos y utilidades de álgebra lineal para el aprendizaje profundo.
Sputnik utiliza el sistema de compilación Cmake. Sputnik depende del kit de herramientas CUDA (V10.1+) y admite SM70+. La única dependencia adicional para la biblioteca es Google/Glog. Para construir la biblioteca, ingrese el directorio del proyecto y ejecute los siguientes comandos:
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j12
Las suites Test and Benchmark también dependen de ABSEIL/ABSEIL-CPP, Google/GooglTest y Google/Benchmark. Estas dependencias se incluyen como submódulos en Third_Party. Para construir la suite de prueba y/o el suite de referencia, establezca -DBUILD_TEST=ON
y/o -DBUILD_BENCHMARK=ON
en su comando cmake
.
cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_TEST=ON -DBUILD_BENCHMARK=ON -DCUDA_ARCHS="70;75"
Sputnik proporciona un Dockerfile que construye el entorno adecuado con todas las dependencias. Tenga en cuenta que NVIDIA-Docker debe instalarse para ejecutarse en GPU. Para construir la imagen, ejecute el siguiente comando:
docker build . -t sputnik-dev
Para iniciar el contenedor con la fuente Sputnik montada debajo /mount
(suponiendo que esté trabajando en $ Home), ejecute lo siguiente:
sudo docker run --runtime=nvidia -v ~/:/mount/ -it sputnik-dev:latest
Si utiliza esta biblioteca, cite:
@inproceedings{sgk_sc2020,
author = {Trevor Gale and Matei Zaharia and Cliff Young and Erich Elsen},
title = {Sparse {GPU} Kernels for Deep Learning},
booktitle = {Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis, {SC} 2020},
year = {2020},
}
Los modelos dispersos y el conjunto de datos de matrices dispersas de redes neuronales profundas del documento anterior se pueden encontrar aquí.
Este no es un producto oficial de Google.