日々精進

新しく学んだことを書き留めていきます

mmdetectionで推論すると「mmcv RuntimeError: nms_impl: implementation for device cuda:0 not found.」エラー

現象は以下。

  • Dockerfileでmim install mmdetを実行して作ったコンテナで推論を実行すると発生する
  • docker buildのログを見ていると、mmcvのcpu版がインストールされている。でも実行環境ではgpu版を使おうとしてエラーになっているっぽい
  • 手動でmim install mmdetを実行した場合は発生しない

docker build時の環境でgpuが使えないので自動的にcpu版のmmcvをインストールしてしまうのが原因と思われる。

build環境でもgpuを使えるようにする方法がちょっとわからなかったので以下のようにmmcv-fullのgpu版はpipでinstallし、その後mim install mmdetを実行するようにしたら直った。

pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu110/torch1.7.0/index.html

参考:

github.com