CUDA11の対応について

1,346 views
Skip to first unread message

Ahn John

unread,
Mar 25, 2021, 1:41:52 AM3/25/21
to Neural Network Console Users (JP)
NNCをRTX3000シリーズで利用できたので情報共有します。

NNCはCUDA11に対応しておらず、RTX3000シリーズはCUDA10に対応していないのでRTX3000シリーズの使用ができませんでした。
しかし、現在ではnnablaのアップデートによって使用ができるようになりました。
過去に記載されていた方法ではできなかったので、以下に手順を示します。(もっとスマートな手順があるかもしれませんが)
  • windows上でCUDA11.2をインストールする。
  • cudnn8.1をダウンロード・展開し、中身をC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2にコピーする
  • NNCを起動し、何でも良いのでプロジェクトを開く
  • CPUで学習を実行し、結果リストを右クリック、その他のツール、コマンドプロンプト
  • コマンドプロンプト上でpip uninstall nnabla-ext
  • pip uninstall nnabla
  • pip install nnabla-ext-cuda110
  • NNCのセットアップ、エンジンを開く
  • PATHにCUDAのフォルダを追記
    C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\bin;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\libnvvp;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;
以上の手順でRTX3090,CUDA11.2、cudnn8.1での実行を確認しました。

c90

unread,
Apr 1, 2021, 9:44:35 AM4/1/21
to Neural Network Console Users (JP)
Johnさん、ありがとうございます。遅ればせながら、うまく動かすことができました。

ちょっと修正。


2021年3月25日木曜日 14:41:52 UTC+9 Ahn John:

Taro Double

unread,
Apr 2, 2021, 5:18:54 AM4/2/21
to Neural Network Console Users (JP)

Johnさん c90さん

情報ありがとうございます。試しにやってみましたが私の方でも動作確認ができました。
RTX 3070のGPUを使用しておりますので、環境変数を、以下にすることで動作しました。

AVAILABLE_GPU_NAMES="GeForce RTX 3070"


2021年4月1日木曜日 22:44:35 UTC+9 c90:
Message has been deleted

秋雪

unread,
Apr 2, 2021, 4:30:35 PM4/2/21
to Neural Network Console Users (JP)
Johnさん、c90 さん、tarod... さん
ありがとうございます。

RTX3090,CUDA11.2、cudnn8.1ですが、最低限の設定だと思われる手順を確認しました。
※確認手順を含みます。
も参考にしています。
===
まず、Johnさんの二つ目までの手順を実行しておく。

NNC2.0.0起動後、右中上の【アクション v】をプルダウンし、【その他のツール】→【コマンドプロンプト】に入る。
以下、行頭「>」はコマンドプロンプトでの入力。

念のため、コマンドプロンプトにて
>pip list
で nnabla および nnabla-ext-cuda のバージョンを確認。
NNC2.0.0では 1.15.0.dev1 になっていた。

これらを置き換えるため、まず
>pip uninstall -y nnabla nnabla-ext-cuda
にてアンインストール

次に
>pip install nnabla-ext-cuda110
にてnnabla および nnabla-ext-cudaの対応バージョンをインストール

念のため
>pip list
にて

nnabla               1.18.0
nnabla-ext-cuda110   1.18.0

を確認。

この段階では
>python -c "import nnabla_ext.cuda, nnabla_ext.cudnn"
を実行すると

ImportError: DLL load failed: 指定されたモジュールが見つかりません。

が出力されるので、
>path
にてCNNの動作環境にCUDA関連へのパスが入っていないことを確認。

ウィンドウズのシステム環境変数のpathにて、cuda11.2をインストールしたときに設定される
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\libnvvp
の二つをCNNの動作環境内のpathに追加するため、CNN画面右上の【セットアップ】→【エンジン】を選択
環境変数のPATHに上記の二つを「;」で区切って追加。

一度、CNNを再起動させる。

再起動後、CNNのコマンドプロンプトを立ち上げ、
>python -c "import nnabla_ext.cuda, nnabla_ext.cudnn"
を実行して

・・・[nnabla][INFO]: Initializing CPU extension...
・・・[nnabla][INFO]: Initializing CUDA extension...
・・・[nnabla][INFO]: Initializing cuDNN extension...
の出力を得ればOK。

現時点では
AVAILABLE_GPU_NAMES="GeForce RTX 3090"
を追加しなくても、問題無く動作しています。

※一部入力ミスがあったので一端削除した後の再投稿です

2021年3月25日木曜日 14:41:52 UTC+9 Ahn John:
NNCをRTX3000シリーズで利用できたので情報共有します。

秋雪

unread,
Apr 5, 2021, 6:22:23 PM4/5/21
to Neural Network Console Users (JP)
その後、学習・評価等はGTX1060使用時と比較し5-6倍速程度とスムーズに稼動していますが、Grad-CAMとLIMEが動きません。

Grad-CAMでのエラー
AttributeError: 'ProtoNetwork' object has no attribute 'get_backward_sequence'
LIMEでのエラー
AttributeError: 'ProtoNetwork' object has no attribute 'forward'

これらは
AVAILABLE_GPU_NAMES="GeForce RTX 3090"
の設定の有無にかかわらず出ます。

ご報告まで
2021年4月3日土曜日 5:30:35 UTC+9 秋雪:

Ahn John

unread,
Apr 5, 2021, 7:47:14 PM4/5/21
to Neural Network Console Users (JP)
作業に抜けがありましたね。訂正ありがとうございます。
Onnxへの変換も動きませんでしたが、nnablaの該当プラグインをアップグレード前のものと比較し、修正を行うことで動作しました。
しかし、突貫工事なのでこれ以上はNNCの新しいバージョンを待つのが良さそうです。

小林由幸

unread,
Jun 7, 2021, 4:04:39 AM6/7/21
to Neural Network Console Users (JP)
大変お待たせいたしましたが、Windows版については先日(2021年 5/13)リリースのVersion 2.1にて最新のGPUに対応しています。
どうぞお試しください。

Neural Network Console Windowsアプリ
https://dl.sony.com/ja/app/

2021年4月6日火曜日 8:47:14 UTC+9 Ahn John:
Reply all
Reply to author
Forward
0 new messages