web-dev-qa-db-ja.com

Visual Studio 2017でCUDAを使用する

CUDAをインストールしようとしていますが、「Visual Studioのサポートされているバージョンが見つかりませんでした」というメッセージが表示されます。これは私がVisual Studio 2017(Community)を使用しているためだと思います。CUDAは現在Visual Studio 2015までしかサポートしていません。残念ながら、マイクロソフトはサブスクリプション料金を支払うことなくVisual Studioの古いバージョンをダウンロードできません。

VS 2017との互換性の問題を回避する方法はありますか、CUDAを使用できませんか?

20
acernine
  1. CUDA 8.0Visual Studio 2017と一緒にインストールする場合は、Visual Studio 2017の追加コンポーネントをインストールする必要があります。

    [スタート]メニューをクリックして、Visual Studio Installerと入力します。 Visual Studioインストーラーを開きます

    Individual componentsタブを開き、VC++ 2015.3 v140 toolsetを選択します
    Compilers, build tools and runtimesの下。

install additional components for Visual Studio 2017

  1. また、.NET Framework 3.5をインストールしていない場合は、インストールする必要があります。
    Nvda.Build.CudaTasks.v8.0.dll Assembly MS .NET Framework 3.5に依存

クラシックコントロールパネルを開き、Programs and featuresに移動します
そしてTurn Windows features on or offを押します。 .NET Framework 3.5を確認し、[OK]を押します。

enter image description here

  1. 完全なCUDA toolkitディストリビューションをダウンロードして、ディスクのどこかに展開します。
  2. CUDA toolkitがインストールされていない場合は、今すぐ実行してください。 Visual Studio 2017のみがインストールされている場合は、Visual Studio integrationチェックボックスをオフにします。


ここで、"No supported version of the visual studio was found"エラーを受け取ります。

ただし、Visual Studio 2017でCudaツールキットプロジェクトを正常にビルドするには、手順5と6に従う必要もあります。

  1. CUDAVisualStudioIntegration\extras\visual_studio_integration\MSBuildExtensionsに移動します
    抽出されたディストリビューションのフォルダー、すべてのファイルをコピーして貼り付けます
    C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v140\BuildCustomizations:

msbuild

  1. 最後のステップでは、Cudaプロジェクトを編集して、Visual Studio 2017からNVidiaのビルドタスクを認識する必要があります。 .vcxprojファイルをテキストエディターで開き、出現するすべてのCUDA 8.0.propsを見つけます。 XMLスニペットが次のようになるように、文字列の先頭のマクロを$(VCTargetsPath14)に置き換えます。

<ImportGroup Label="ExtensionSettings"> <Import Project="$(VCTargetsPath14)\BuildCustomizations\CUDA 8.0.props" /></ImportGroup>

ファイルの最後でカスタムターゲットパスを編集することを忘れないでください。

<ImportGroup Label="ExtensionTargets"> <Import Project="$(VCTargetsPath14)\BuildCustomizations\CUDA 8.0.targets" /></ImportGroup>



パスの構成を再確認してください!
コマンドプロンプトからnvccを使用すると、cl.exeフォルダーからVisual Studioを呼び出していない可能性があります。

another cl.exe might be in path

これで、Visual Studio 2017からCudaプロジェクトをビルドできます。

このソリューションの一部は Oleg Tarasovブログ からのものです。

44
Panos Kal.

皆さん、助けてくれてありがとう。この投稿をパズルの最後のピースで補完したかっただけです。 CUDA v9.0 RCは1910として識別するVS2017を探していますが、最新の更新プログラムは実際に1911として識別します。open.../CUDA/v9.0/include/crt/Host_config.hを修正してこの行を変更するには:
#if _MSC_VER < 1600 || _MSC_VER > 1910
これ:
#if _MSC_VER < 1600 || _MSC_VER > 1911

また、CMakeListsに次を追加する必要があります。
list(APPEND CUDA_NVCC_FLAGS --cl-version=2017)

5
Rubinium

現時点では、MicrosoftはまだVS2015 Update 2コミュニティエディションを利用可能にしているようです。 「dev essentials」プログラムに参加する必要がありますが、無料のようです。

here からインストーラーをダウンロードできました。

更新:CUDA 9 RCは昨日、developer.nvidia.comで登録開発者に提供され、VS 2017をサポートしています。

4
Robert Crovella

この後者を見ている人々のために。

まず、CUDA 10(CUDA Toolkit 10.0)をインストールしてみてください。

MODがなければ動作しない場合は、リストに表示されているVC++ツールセットがすべてあることを確認してください。 このビデオ を確認し、8:41に停止してリストを比較します。

何らかの理由でCUDA 9.0-9.2を使用する必要がある場合、いくつかのフープをジャンプする必要があります。

  • Cmdビルドの場合はvcvars_ver = 14.11を設定します- この回答を参照
  • IDEビルドの場合、プラットフォームツールセット(プロジェクトプロパティ-一般)をに設定します。
    • Visual Studio 2017(v141))または
    • Visual Studio 2015(v140))

Cmdベースのビルドを非常にカスタマイズしている場合は、#if _MSC_VER.../CUDA/.../include/crt/Host_config.h内)を探し、末尾の|| _MSC_VER > ...を削除します

3
ZXX

WindowsシェルでCudaコンパイラnvccを機能させるには、以下を実行する必要があります

  1. vS 2017の個々のコンポーネントから適切なツールセットバージョンをインストールする-VC++ 2017 version 15.4 v.14.11 toolset

  2. "c:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x64 -vcvars_ver=14.11に従ってWindowsシェルで実行します

  3. Windowsシェルからエラーなしでnvccコードをコンパイルできます

1
gskillz

最新のアップデート(2018年6月12日現在)Cudaの最新バージョンは9.2であり、Visual Studioの最新バージョンは2017.7であり、連携して動作しません。上記のソリューションで提供されている指示は機能しません。ここに私のために働いたものがあります:

  1. Visual Studioをアンインストールします。
  2. Visual Studio Installerのアンインストール
  3. Visual Studio 2017.6をダウンロードします(Microsoftは予告なしにリンクとリビジョンを変更することが知られています) https://docs.Microsoft.com/en-us/visualstudio/productinfo/installing-an-earlier-release-of- vs2017
  4. インストーラーを起動する
  5. 個々のコンポーネントに移動します。 Windows 10 SDK 10.0.15063をクリックします ここに画像の説明を入力します

  6. 公式Webサイトからcuda Toolkitをダウンロードします。 https://developer.nvidia.com/cuda-downloads?target_os=Windows&target_Arch=x86_64&target_version=10&target_type=exelocal

  7. パッチをダウンロードする必要がある場合があります。
0
Mark Zamek

CUDA 9.1とVS2017 Enterpriseを使用して同じ問題に遭遇しました。

VC++コンパイラを(141ではなく)v140に変更すると、すべて正常に動作します。

すでにフラグがありました

#if _MSC_VER < 1600 || _MSC_VER > 1911

しかし、エラーの表示は止まりません。

理由はわかりませんが、VS2015で実行しようとすると、v141がインストールされていないというエラーが発生します...

同じ状況で他の誰かを助けるかもしれないので、これをここに残してください。 (私は本当にソリューションの理由、方法、時期、誰、または何を理解していない。

0
PabTorre

テキストエディター(つまりSublime)を使用してCUDAプログラムを編集し、コマンドプロンプトからコンパイルしたかったのですが、nvccコンパイラーエラーが発生しました。 Windows 10 OSでVisual Studio 2017をインストールしましたが、コンパイル後に「VS 2012、13、15、および17のバージョンのみが許可されます」と表示されました。そこで、VS 2017インストーラーのインストールパッケージからVC++ 2015ツールキットをインストールしました(トップポストの画像を参照)。代わりに、彼のプロセス全体を実行しませんでした。cl.exeファイルのパスを、新しく作成したVS 14.0フォルダーから環境変数にコピーしただけです。 .exeは次の場所にあります。

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin

お役に立てれば!

0
Junelle Rey