cuDNN(CUDA Deep Neural Network library)とは、NVIDIAが提供するGPU向けのディープラーニング用高速ライブラリです。畳み込み演算、プーリング、正規化、活性化関数など、ニューラルネットワークの基本演算をGPU上で高度に最適化して実行するためのプリミティブを提供します。
cuDNNの役割
cuDNNは深層学習フレームワーク(PyTorch、TensorFlowなど)のバックエンドとして動作し、ユーザーが明示的に呼び出すことは稀ですが、GPU上でのニューラルネットワーク演算の高速化に不可欠な存在です。畳み込み演算では複数のアルゴリズム(Winograd、FFTベースなど)から最適なものを自動選択する機能も備えています。
主要な最適化機能
cuDNNは畳み込みの順伝播・逆伝播、バッチ正規化、RNN/LSTM演算、マルチヘッドアテンション、ソフトマックスなど、幅広いDNN演算をカバーしています。Tensor Coreを活用した混合精度演算にも対応し、FP16やBFloat16での学習・推論を効率的に行えます。
バージョンの進化
cuDNNはNVIDIAのGPUアーキテクチャの進化に合わせて継続的にアップデートされ、新しいGPU世代の性能を最大限引き出すための最適化が行われています。深層学習フレームワークのバージョンと対応するcuDNNバージョンの互換性に注意が必要です。