GTC 2015 - Deep Learning用のCUDAライブラリ「cuDNN」
中でも、Convolutionの計算が大部分で、80~90%の実行時間を占める。従って、この部分の高速化が重要である。
cuDNNの設計目標は、DNNのDeep Learningに必要な機能を提供し、多様なデータ格納形式に対応できる柔軟性を持ち、性能と使用メモリ量のトレードオフができるようにすることである。メモリに余裕がある場合は、ワーク領域をたくさん使っても性能を上げる方が良いが、メモリがきつい場合は、性能はある程度犠牲にしてもメモリを使わないことが重要である。このように色々な状況に応じて最適な機能を提供するわけである。
cuDNNの第1版をcaffeに組み込んだ結果を次の図に示す。この結果はAlexNetの学習の例である。誤差を出力から入力に伝搬させて学習を行うBackward Propagationの処理が一番時間が掛かっており、156,270秒掛かっていたが、cuDNNの使用で120,651秒と1.3倍にスピードアップされている。
そしてForward Propagationでは109,310秒が75,330秒と1.45倍になっている。この結果、cuDNNの使用で、全体では1.36倍のスピードアップが得られている。