Sputnik - это библиотека разреженных линейных ядер и утилит алгебры для глубокого обучения.
Sputnik использует систему сборки Cmake. Sputnik зависит от инструментария CUDA (V10.1+) и поддерживает SM70+. Единственная дополнительная зависимость для библиотеки - Google/Glog. Чтобы построить библиотеку, введите каталог проекта и запустите следующие команды:
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j12
Тестовые и контрольные наборы дополнительно зависят от Abseil/abseil-cpp, Google/Googltest и Google/Benchmark. Эти зависимости включены в качестве подмодулей в Third_Party. Чтобы построить тестовый набор и/или набор Benchmark, установите -DBUILD_TEST=ON
и/или -DBUILD_BENCHMARK=ON
в вашей команде cmake
.
cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_TEST=ON -DBUILD_BENCHMARK=ON -DCUDA_ARCHS="70;75"
Sputnik предоставляет Dockerfile, который строит правильную среду со всеми зависимостями. Обратите внимание, что NVIDIA-Docker должен быть установлен для запуска на GPU. Чтобы построить изображение, запустите следующую команду:
docker build . -t sputnik-dev
Чтобы запустить контейнер с источником Sputnik, установленным под /mount
(при условии, что вы работаете из дома), запустите следующее:
sudo docker run --runtime=nvidia -v ~/:/mount/ -it sputnik-dev:latest
Если вы используете эту библиотеку, пожалуйста, укажите:
@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},
}
Разреженные модели и набор данных разреженных матриц из глубоких нейронных сетей из приведенной выше бумаги можно найти здесь.
Это не официальный продукт Google.