GTX1080 Ubuntu16.04 CUDA8 でNaNトラブル

備忘録メモ。

GTX1080をUbuntu16.04,CUDA8.0でセットアップしたが,今までTITANやTeslaで動いていたコードがNaNを吐き出すようになった。使っていたライブラリはchainer。

調べたところconvolutional layerのforward計算の出力がNaNになっていることが分かった。chainerの本家のmnist exampleの層をconvolutionに変えても同様にNaNを吐いた。

gpuメモリの初期不良を疑ったが,LSTMなどの計算には問題は起きていなかったので,試しにcuDNNを外してみたところ、正常に動いた。

最新のバージョンのcudnnのみを入れなおしたところ,同様に正常に動いたことから,GTXがcuDNNフォルダに一緒に入っていた古いcuDNNを認識した結果NaNを吐くようになっていたらしい。

今までこんなことなかったので勝手に認識してくれるものだと思っていた...バージョン管理の大切さよ...