NNC Windows版3.3のGPU使用について

114 views
Skip to first unread message

G.T.

unread,
Dec 29, 2024, 8:43:00 AM12/29/24
to Neural Network Console Users (JP)
12/23にNNCのWIndows版が3.3にアップデートされましたね。
3.1では動かなかったサンプルプロジェクトが動作するようになったようですが、GPUを使用する設定にしても何故かGPUを認識せず、CPUのみで学習します。
NNCのCUDA関係のプラグインらしきファイル群を確認しましたが、日付は変わっているもののバージョン等は同じでした。
バージョン3.1から何か変わったのでしょうか?
NNC側の不具合なのか、それとも何らかの対処が必要かのか判断できずに困っています。

構成としては下記の通りです。
OS:Windows11
GPU:GeForce GTX1650
CUDA:Windowsの標準のまま(3.1ではこれで動作していた)

G.T.

unread,
Jan 7, 2025, 6:36:30 PMJan 7
to Neural Network Console Users (JP)
自己レス

昨年末に「設定」のコマンドライン(cli.py)呼び出しのパスが3.1と異なる事に気づき、cli.pyが複数ある事を確認しました。
3.1と同じパス(旧cli.py)に戻す事で正常にGPUが動く事は確認済みです。
こうするとTorchは動かなくなりますが、nnablaの方が約10倍ほど速いのでTorchを使う積極的な理由もないため、特に問題ないので放置してます。
また、nnbla自体はアップデートされているようで、以前は動作しなかったサンプルプロジェクトは正常に動いています。

ただ3.3のcli.pyを見ると、 設定の部分が大幅に変わっていますね。もしかして、CUDAの設定を忘れてる?
ToDoの残ってるし、何よりも「_version = '0.0.1'」って。

いずれにしても仕様変更とかではなくNNCの不具合っぽいですね。

2024年12月29日日曜日 22:43:00 UTC+9 G.T.:

Tomonobu Tsujikawa

unread,
Jan 7, 2025, 10:31:23 PMJan 7
to Neural Network Console Users (JP)
nn_cliのcommand.pyに引数定義がありますが、trainingの時に -C optionが付いていないとCPUを利用するようになってしまっていますね…
nnablaだけなら元のを使うのでもよさそうですが、torchも使ってみるなら
以下のように add_train_command() の -C optionの箇所をdefault=Noneにすれば良さそうです(以前のデフォルトと同じ)。

diff a/nn_cli/commands.py b/nn_cli/commands.py
--- a/nn_cli/commands.py
+++ b/nn_cli/commands.py
@@ -115,7 +115,7 @@ def add_train_command(subparsers):
     subparser.add_argument(
         '-m', '--ooc-gpu-memory-size', help='OOC gpu memory size (INTEGER or NUMeNUM or NUM[KkMmGgTtPp])', default=None)
     subparser.add_argument(
-        '-C', '--context', help='Force exec context (cpu or cudnn[:DEVID])', default="cpu")
+        '-C', '--context', help='Force exec context (cpu or cudnn[:DEVID])', default=None)
     subparser.add_argument(
         '-w', '--ooc-window-length', help='OOC window length (INTEGER or NUMeNUM or NUM[KkMmGgTtPp])', default=None)
     if env.nnabla_enabled:


2025年1月8日水曜日 8:36:30 UTC+9 G.T.:

G.T.

unread,
Jan 8, 2025, 3:16:56 AMJan 8
to Neural Network Console Users (JP)
情報、ありがとうございます!

早速修正して「semi_supervised_learning_VAT.sdcproj」を動かして確認をしたところ、見事に3.3のcli.pyでGPUが動作しました。
Torchも(GPU動作ではないものの)動きました。
感謝です。m(_ _)m

ただちょっと気になるのは、3.1のcli.pyで「semi_supervised_learning_VAT.sdcproj」をGPU学習させた時と「Noise」の出力画像がちがってるんですよね...
nnblaに渡してるコマンドの設定が微妙に違うのかな?

2025年1月8日水曜日 12:31:23 UTC+9 tomonobu....@gmail.com:
Reply all
Reply to author
Forward
0 new messages