💬

VSCodeでCUDAの開発環境構築(Windows)

2022/12/03に公開

対象読者

  • Windowsを使用して開発を行いたい人
  • CUDA on WSL2ではなく、Windows上でビルドして実行したい人
  • VSCodeでCUDAを自動補完しながら開発したい人

1. 前提条件

  • PATHについての基礎知識

  • Visual StudioにC/C++サポートがインストール済みであること

  • VSCode をインストール済みであること

  • CUDA Toolkit をインストール済みであること

以降では、CUDA 11.8 として記載します。GPUは、RTX3060を想定しています。

2. 拡張機能のインストール

VSCodeに下記の拡張機能をインストールします。

  • C/C++

  • Nsight Visual Studio Code Editon

3. タスクの設定等

ワークディレクトリ以下に下記を用意します。参考例であることにご注意ください。

  • .vscode/c_cpp_properties.json
  1. 『Ctrl + Shift + P』 で、コマンドパレットを開く。
  2. 『C/Cpp: Edit configurations...』 を選択。
  3. c_cpp_properties.jsonが作成されるので、コンパイラのPATHを通す。
{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "windowsSdkVersion": "10.0.22000.0",
            "compilerPath": "\"${CUDA_PATH}/bin/nvcc.exe\"",
            "cStandard": "c17",
            "cppStandard": "c++17",
            "intelliSenseMode": "windows-msvc-x64"
        }
    ],
    "version": 4
}
  • .vscode/task.json
  1. 『Ctrl + Shift + P』 で、コマンドパレットを開く。
  2. 『Tasks: Configure Task』 を選択する。
  3. task.jsonが作成されるので、PATH等の設定を行う。
{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: nvcc.exe アクティブなファイルのビルド",
            "command": "\"${CUDA_PATH}/bin/nvcc.exe\"",
            "args": [
                "-arch=sm_86",
                "-rdc=true",
                "-use_fast_math",
                "-O2",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe",
                "-lcudadevrt",
            ],
            "options": {
                "cwd": "${CUDA_PATH}/bin"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "デバッガーによって生成されたタスク。"
        }
    ],
    "version": "2.0.0"
}
  • .vscode/launch.json
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "CUDA C++: Launch",
            "type": "cuda-gdb",
            "request": "launch",
            "program": ""
        },
        {
            "name": "CUDA C++: Attach",
            "type": "cuda-gdb",
            "request": "attach"
        }
    ]
}

4. ビルド

『Ctrl + Shift + B』 でタスクが実行され、ビルドできます。

参考文献

Discussion