NVIDIA cuDNNは,DNNアプリケーションで頻繁に発生する操作の高度に調整された実装を提供します.
- 畳み込みの順伝播と逆伝播(クロスコリレーションを含む)
- 行列の乗算
- プーリングの順伝播と逆伝播
- ソフトマックスの順伝播と逆伝播
- ニューロンの活性化の順伝播と逆伝播:
relu
,tanh
,sigmoid
,elu
,gelu
,softplus
,swish
- 算術,数学的,関係,および論理的なポイントワイズ操作(さまざまな種類の順伝播および逆伝播ニューロン活性化を含む)
- テンソル変換関数
- LRN,LCN,バッチ正規化,インスタンス正規化,およびレイヤー正規化の順伝播と逆伝播
個々の操作のパフォーマンスを向上させるだけでなく,cuDNNライブラリはさらに最適化のための柔軟なマルチオペレーションフュージョンパターンのセットもサポートしています. 目標は,重要なディープラーニングのユースケースにおいて,NVIDIA GPU上で可能な限り最高のパフォーマンスを達成することです.
cuDNNバージョン7以前では,APIは固定された一連の操作とフュージョンパターンをサポートするように設計されていました.これを非公式に「レガシーAPI」と呼んでいます. cuDNNバージョン8以降では,急速に拡大する人気のフュージョンパターンに対応するために,操作グラフを定義することで計算を表現できるグラフAPIを追加しました. これにより,レガシーAPIに比べてより柔軟性が提供され,ほとんどのユースケースでは,cuDNNを使用する推奨方法となっています.
cuDNNライブラリはC APIを公開している一方で,C APIをラップするオープンソースのC++レイヤーも提供しており,ほとんどのユーザーにとってより便利です.
ただし,これはグラフAPIに限定されており,レガシーAPIはサポートしていません.
基本知識
コア・コンセプト
グラフAPI
互換性
雑多な事項