Visual Studio の CUDA 11.0 Runtime プロジェクトのデフォルトソースコード実行時に addWithCuda failed! と出るときは Code Generation の値を確認する

試した環境

本題

Visual Studio の CUDA 11.0 Runtime プロジェクトのデフォルトソースコードで、ビルドは通ったものの実行時に以下のメッセージが表示されました。

addKernel launch failed: no kernel image is available for execution on the device addWithCuda failed!

構成プロパティ -> CUDA C/C++ -> Device の Code Generation をみると、デフォルトの値としてcompute_52,sm_52が指定されていました。 私が使用している GeForce GTX 750 の compute capability が 5.0 のため、ここにcompute_50,sm_50を追加します。
するとビルド時に以下の警告が出ます。

CUDACOMPILE : nvcc warning : The 'compute_35', 'compute_37', 'compute_50', 'sm_35', 'sm_37' and 'sm_50' architectures are deprecated, and may be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning).

しかしこれで動くようになりました。

{1,2,3,4,5} + {10,20,30,40,50} = {11,22,33,44,55}

CUDA 11.0 から compute capability 5.0 が非推奨になってしまいました。 CUDA のバージョンを下げることを検討したほうがいいかもしれません。

参考

自分が使っている NVIDIA GPU の compute capability を確認するために以下のページを参考にしました。

CUDA GPUs | NVIDIA Developer

CUDA のバージョンと compute capability の対応については以下の Stack Overflow の解答が参考になります。 NVIDIA のサイトでは見つけられませんでした。

CUDA compute capability requirements - Stack Overflow