Sputnikは、深い学習のためのスパース線形代数カーネルとユーティリティのライブラリです。
SputnikはCmakeビルドシステムを使用しています。 SputnikはCuda Toolkit(V10.1+)に依存し、SM70+をサポートします。ライブラリの唯一の追加の依存関係は、Google/Glogです。ライブラリを構築するには、プロジェクトディレクトリを入力して、次のコマンドを実行します。
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j12
テストおよびベンチマークスイートはさらに、Abseil/Abseil-CPP、Google/GooglTest、およびGoogle/ベンチマークに依存しています。これらの依存関係は、Third_Partyのサブモジュールとして含まれています。テストスイートおよび/またはベンチマークスイートを構築するには、 cmake
コマンドで-DBUILD_TEST=ON
および/または-DBUILD_BENCHMARK=ON
を設定します。
cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_TEST=ON -DBUILD_BENCHMARK=ON -DCUDA_ARCHS="70;75"
Sputnikは、すべての依存関係を備えた適切な環境を構築するDockerFileを提供します。 GPUで実行するには、nvidia-dockerをインストールする必要があることに注意してください。画像を作成するには、次のコマンドを実行します。
docker build . -t sputnik-dev
sputnikソースが/mount
に取り付けられたコンテナを起動するには($ homeで作業していると仮定して)、以下を実行してください。
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製品ではありません。