Sputnik est une bibliothèque de grains d'algèbre linéaire clairsemés et de services publics pour l'apprentissage en profondeur.
Sputnik utilise le système de construction CMake. Sputnik dépend de la boîte à outils CUDA (V10.1 +) et prend en charge SM70 +. La seule dépendance supplémentaire pour la bibliothèque est Google / Glog. Pour construire la bibliothèque, entrez le répertoire du projet et exécutez les commandes suivantes:
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j12
Les suites de test et de référence dépendent également d'Abseil / Abseil-CPP, Google / Googltest et Google / Benchmark. Ces dépendances sont incluses comme sous-modules dans Third_Party. Pour construire la suite de tests et / ou la suite de référence, définissez -DBUILD_TEST=ON
et / ou -DBUILD_BENCHMARK=ON
dans votre commande cmake
.
cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_TEST=ON -DBUILD_BENCHMARK=ON -DCUDA_ARCHS="70;75"
Sputnik fournit un dockerfile qui construit l'environnement approprié avec toutes les dépendances. Notez que Nvidia-Docker doit être installé pour fonctionner sur GPU. Pour construire l'image, exécutez la commande suivante:
docker build . -t sputnik-dev
Pour lancer le conteneur avec la source Sputnik montée sous /mount
(en supposant que vous travaillez à partir de $ à la maison), exécutez ce qui suit:
sudo docker run --runtime=nvidia -v ~/:/mount/ -it sputnik-dev:latest
Si vous utilisez cette bibliothèque, veuillez citer:
@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},
}
Les modèles clairsemés et l'ensemble de données de matrices clairsemées à partir de réseaux de neurones profonds de l'article ci-dessus peuvent être trouvés ici.
Ce n'est pas un produit Google officiel.