Sputnik ist eine Bibliothek mit spärlichen linearen Algebra -Kerneln und -versorgungsunternehmen für Deep Learning.
Sputnik verwendet das CMake -Build -System. Sputnik hängt vom CUDA -Toolkit (V10.1+) ab und unterstützt SM70+. Die einzige zusätzliche Abhängigkeit für die Bibliothek ist Google/Glog. Um die Bibliothek zu erstellen, geben Sie das Projektverzeichnis ein und führen Sie die folgenden Befehle aus:
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j12
Die Test- und Benchmark-Suiten hängen zusätzlich von Abseil/Abseil-CPP, Google/GoogleLtest und Google/Benchmark ab. Diese Abhängigkeiten werden als Submodul in Third_party enthalten. Um die Testsuite und/oder die Benchmark -Suite zu erstellen, setzen Sie in Ihrem cmake
-Befehl -DBUILD_TEST=ON
und/oder -DBUILD_BENCHMARK=ON
.
cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_TEST=ON -DBUILD_BENCHMARK=ON -DCUDA_ARCHS="70;75"
Sputnik bietet eine Dockerfile, die die richtige Umgebung mit allen Abhängigkeiten aufbaut. Beachten Sie, dass NVIDIA-Docker so installiert werden muss, dass sie auf der GPU ausgeführt werden. Um das Bild zu erstellen, führen Sie den folgenden Befehl aus:
docker build . -t sputnik-dev
Um den Container mit der Sputnik -Quelle zu starten, die unter /mount
ist (vorausgesetzt, Sie trainieren von $ Home), führen Sie Folgendes aus:
sudo docker run --runtime=nvidia -v ~/:/mount/ -it sputnik-dev:latest
Wenn Sie diese Bibliothek verwenden, zitieren Sie bitte:
@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},
}
Die spärlichen Modelle und der Datensatz von spärlichen Matrizen aus tiefen neuronalen Netzwerken aus dem obigen Papier finden Sie hier.
Dies ist kein offizielles Google -Produkt.