web-dev-qa-db-ja.com

Visual Studio 2017でのCUDA 9サポートされていないエラー

私は最近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をインストールしました。スクリーンショットが添付されています screenshot インストール済みのコンポーネント。

追加情報が必要な場合はお知らせください。 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ファイルには「式には定数値が必要です」というエラーが表示されます。修正方法がわかりません。

11
Mikhail Genkin

しばらく苦労した後、私は問題を解決することができました。同様の問題を抱えている人への答えは次のとおりです。

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ツールセットを選択できますが、正常に動作します。

19
Mikhail Genkin

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のバージョンに基づいた同様の何か

2
Chao

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

2
porchini

この質問を読んでいる人は、CUDA 10で更新してください。すぐに動作します。他の回答に記載されている以前のコンパイラツールセットなどをインストールする必要はありません。 CUDA 10をダウンロードしてインストールし、以前のバージョンのCUDAをアンインストールします。次に、新しいCUDA 10プロジェクトを作成し、コードを配置します。それが動作します。

エラーが発生している場合は、プロジェクトプロパティ-> CUDA C/C++->デバイス->コード生成で、compute_xx,sm_xxを適切に設定することを忘れないでください。

1
Nikos