私は最近VS 2017を更新しましたが、今ではデフォルトのCUDAプロジェクト(ベクターを追加したプロジェクト)をビルドすることさえできません。
これは次のエラーによるものと思われます。
Severity Code Description Project File Line Suppression State
Error C1189 #error: -- unsupported Microsoft Visual Studio version!
Only the versions 2012, 2013, 2015 and 2017 are supported! ver2
c:\program files\nvidia gpu computing
toolkit\cuda\v9.0\include\crt\Host_config.h 133
他のエラーは無関係であり、これを修正すると消えます。 CUDAサンプルからsimpleCUFFTをビルドして実行できることに注意してください。
更新前に、デフォルトのCUDAプロジェクトをビルドできましたが、CUDAサンプルプロジェクトをビルドできませんでした。 VSインストーラーを使用してVS2017を更新し、CUDA SDK 10.0.15063.0をインストールしました。スクリーンショットが添付されています インストール済みのコンポーネント。
追加情報が必要な場合はお知らせください。 following トピックを認識しており、最新のCUDAツールキットを使用しているため、Host_config.hを変更する必要はありません。
ありがとう、ミハイル
編集:VSインストーラーに表示されるVSバージョンは15.5.0です。nvccバージョンはリリース9.0、V9.0.176です。
Edit2:Host_config.hの133行目を次のように変更しようとしました:
#if _MSC_VER < 1600 || _MSC_VER > 1912
このエラーは表示されなくなりましたが、type_trailsファイルには「式には定数値が必要です」というエラーが表示されます。修正方法がわかりません。
しばらく苦労した後、私は問題を解決することができました。同様の問題を抱えている人への答えは次のとおりです。
1)VC++ 2015.3 v140ツールセットがあることを確認します(WebまたはVisual Studioインストーラーからインストール可能)
2)プロジェクトプロパティ(一般)->プラットフォームツールセットで、Visual Studio 2015(v140)を選択します。
編集(2018年5月21日):Visual Studio 2017を最新バージョン15.7.1に更新しました。これから、VS 2017 v141ツールセットを選択できますが、正常に動作します。
CUDA 9.2およびVS 2017(バージョン15.7.5)を使用しています。 Host_config.hの単純な変更(通常は C:\ Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9。*\include\crtは、ビルドからのVS出力にあります)私のために働く。
行を変更する
#if _MSC_VER < 1600 || _MSC_VER > 1913
に
#if _MSC_VER < 1600 || _MSC_VER > 1914
またはcl.exeのバージョンに基づいた同様の何か
VS update 15.4.3で、MicrosoftはCLコンパイラのバージョン番号を14.12に更新しました( https://www.visualstudio.com/ru-ru/news/releasenotes/vs2017-relnotes#15.4.4 )
そのため、CUDA 9.0.176はコンパイルを拒否します。今日、NVIDIAはCUDAを9.1.85に更新したため、CUDAを9.1に更新するだけで更新できます https://developer.nvidia.com/cuda-downloads
この質問を読んでいる人は、CUDA 10で更新してください。すぐに動作します。他の回答に記載されている以前のコンパイラツールセットなどをインストールする必要はありません。 CUDA 10をダウンロードしてインストールし、以前のバージョンのCUDAをアンインストールします。次に、新しいCUDA 10プロジェクトを作成し、コードを配置します。それが動作します。
エラーが発生している場合は、プロジェクトプロパティ-> CUDA C/C++->デバイス->コード生成で、compute_xx,sm_xx
を適切に設定することを忘れないでください。