未分類

GCPで(ubuntu上で)pytorchを使うまでに色々大変だったので記録しておく

今回はpytorchをubuntu(16.04)で使用するのに行ったことに関して備忘録として残しておきます。

なお細かな技術的なことに関して深堀できておらず「とりあえず動けばいい」という姿勢なのでversionが違う場合や本設定で動作を保証する記事ではないのでご了承ください。

また全て独学なので認識が間違っているところがあるかもしれませんのでその点もご了承ください。

pytorchを使うのにCUDAとcuDNNが必要?

まずpytorch(version 1.0)でモデルを構築しようとすると下記のようなエラーが出ました。

 

yaaku

CUDAって何…?

 

というレベルだったのでググると

「GPUにおいて並列処理を行うプログラミングモデル」ということで、

どうやらNVIDIAの製のGPUを用いる際に効率的に並列処理を行ってくれるライブラリーのようなもののようです。

(wikipediaより引用:https://ja.wikipedia.org/wiki/CUDA)

またCUDAの他にcuDNNというNVIDIAが公開しているDeep learning用のライブラリもインストールする必要があり、

CUDAとcuDNNとpytorchのversion違いで互換性がないものがあり、組み合わせを正しく選ばないとエラーが出るのが今回のエラーの原因のようでした。

yaaku

ツライ…

どのバージョンをインストールしたか?

結論から書くと下記バージョンで動作を確認しました。

pytorch : version 0.4.1

CUDA : version 90

pytorchの公式に上記設定でインストールするコードがあったので載せておきます。

 

ほんとはバージョンごとの組み合わせによる動作有無を調べれば親切かと思いますが、データ分析をやる上では動けばよいので必要に応じて調べます…。

 

これで pytorch と CUDA の互換性は問題ないですが、cuDNNに関しては使用するNVIDIAのGPUによってインストールするバージョンが違うようです。

cuDNNのバージョン確認に関して

次はcuDNNのバージョンの確認を行います。

私はGCPを使用しているため使用するGPUはVMインスタンス詳細から調べられます。

インスタンスを立てる地域によって違う?のかわかりませんが、今回はTesla P100というタイプのものを使用しているようです。

この情報をもとにNVIDIAの公式からドライバーの情報を確認します。

ということで、このGPUにはversion 384.183のドライバーが必要ということがわかりました。

このドライバーをインストールするためにubuntuのドライバーのリポジトリを参照します。

リポジトリの登録後、必要なドライバーをインストールします。

 

以上でCUDA、pytorch、cudNNのバージョンの互換性が取れたものが揃ったかと思います。

次に動作確認を行いますが、インストール後再起動する必要があるようですのでご注意ください。

動作確認を行う

ちゃんと動くのか確認を下記のコードで行います。

 

これで何かしら出力でたら設定終了です。お疲れさまでした。