下载CUDA Toolkit和VS后,配置vscode

你已经下载并安装了 CUDA Toolkit 和 Visual Studio Build Tools(或 Visual Studio) ,接下来我们一步步在 VSCode 中配置 CUDA 开发环境 ,实现 编写 → 编译 → 运行 → 调试 的完整流程。


✅ 前提确认(请先验证)

在继续前,请确保以下命令在 "x64 Native Tools Command Prompt for VS 2022" 中能正常运行:

复制代码
nvcc --version
cl
  • nvcc 显示 CUDA 版本(如 12.4)
  • cl 显示 Microsoft C++ 编译器信息

如果不行,请先解决环境问题(如重启、重新安装 Build Tools 等)。


🛠️ 步骤 1:安装 VSCode 插件

打开 VSCode,安装以下插件:

  1. C/C++ (Microsoft 官方)
    • 提供智能提示、调试支持
  2. CUDA (作者:kriegalex)
    • 为 .cu 文件提供语法高亮(可选但推荐)

其他插件如 CMake Tools、Code Runner 可后续按需添加。


📁 步骤 2:创建 CUDA 项目目录

例如:

复制代码
D:\cuda_projects\hello_cuda\
├── main.cu
└── .vscode/

编写 main.cu 示例代码:

复制代码
#include <cuda_runtime.h>
#include <iostream>

__global__ void say_hello() {
    printf("Hello from GPU thread %d!\n", threadIdx.x);
}

int main() {
    std::cout << "Launching kernel...\n";
    say_hello<<<1, 5>>>();
    cudaDeviceSynchronize();
    
    // 检查错误(可选)
    cudaError_t err = cudaGetLastError();
    if (err != cudaSuccess) {
        std::cerr << "CUDA error: " << cudaGetErrorString(err) << std::endl;
    }
    
    return 0;
}

⚙️ 步骤 3:配置 .vscode/tasks.json(编译)

在项目根目录创建 .vscode/tasks.json:

复制代码
{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build CUDA",
            "type": "shell",
            "command": "nvcc",
            "args": [
                "-o",
                "${workspaceFolder}/main.exe",
                "${workspaceFolder}/main.cu",
                "-arch=sm_75"  // ⚠️ 根据你的 GPU 修改!
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "problemMatcher": "$msCompile",
            "detail": "Compile CUDA source with nvcc"
        }
    ]
}

🔍 关于 -arch=sm_XX:

  • 这是 GPU 的计算能力(Compute Capability)
  • 常见值:
    • GTX 10xx / RTX 20xx → sm_75
    • RTX 30xx → sm_86
    • RTX 40xx → sm_89
  • 查询你的 GPU:https://developer.nvidia.com/cuda-gpus

如果不确定,可先省略 -arch,但可能性能不佳或报错。


🐞 步骤 4:配置 .vscode/launch.json(调试/运行)

创建 .vscode/launch.json:

复制代码
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Run CUDA Program",
            "type": "cppvsdbg",
            "request": "launch",
            "program": "${workspaceFolder}/main.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "console": "externalTerminal"
        }
    ]
}

使用 cppvsdbg 是因为 Windows 上 VSCode 的 C++ 调试依赖 Visual Studio 的调试引擎(已随 Build Tools 安装)。


▶️ 步骤 5:编译并运行

  1. 编译:

    • 按 Ctrl + Shift + B
    • 或终端手动运行:nvcc -o main.exe main.cu -arch=sm_75
  2. 运行/调试:

    • 按 F5 启动调试(会弹出外部终端窗口)
    • 或直接双击 main.exe(在资源管理器中)

✅ 预期输出(以 sm_75 为例):

复制代码
Launching kernel...
Hello from GPU thread 0!
Hello from GPU thread 1!
Hello from GPU thread 2!
Hello from GPU thread 3!
Hello from GPU thread 4!

🔧 可选优化:自动检测 nvcc 路径(避免环境变量问题)

如果你在普通 VSCode 终端中运行 nvcc 报错,但开发人员命令提示符中可以,说明环境变量未全局生效。

解决方案:

在 tasks.json 中使用完整路径(不推荐长期使用),或:

方法:从 VS 开发人员命令提示符启动 VSCode
  1. 先关闭vscode,打开 x64 Native Tools Command Prompt for VS 2022

  2. 进入你的项目目录:

    复制代码
    cd D:\cuda_projects\hello_cuda
  3. 启动 VSCode:

    复制代码
    code .

这样 VSCode 继承了正确的环境变量,nvcc 和 cl 都能直接调用。


🧪 验证是否真正使用 GPU

在代码中加入错误检查(如上所示),或使用 nvidia-smi 监控:

  1. 打开任务管理器 → 性能 → GPU
  2. 运行程序时,应看到 GPU 计算负载上升

📌 常见问题

问题 解决
nvcc : fatal error : Microsoft Visual Studio not found 未正确安装 Build Tools,或未用开发人员命令提示符启动 VSCode
cannot open include file 'cuda_runtime.h' CUDA Toolkit 未装好,检查 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.x\include 是否存在
调试时提示 "Unable to start debugging" 确保安装了 C++ 调试组件(Build Tools 中默认包含)

✅ 完成!

相关推荐
香芋芋圆14 小时前
iD-editor 详解|OSM官方在线编辑器,基于D3.js的轻量地图编辑器
开发语言·javascript·编辑器
qinglongcn19 小时前
Agent 可能出什么事——五类异常与应对
人工智能·编辑器·ai编程
QianhangQianping20 小时前
撤销重做不是「存快照」:一个可视化编辑器的Operation 设计
java·前端·数据库·typescript·编辑器·前端架构·撤销重做
Eiceblue20 小时前
用 Python 给 Word 文档加水印:文字、图片与批量处理
开发语言·vscode·python·word
2501_9159214321 小时前
KXBuild CI 实操,Windows/Linux 服务器接入 Jenkins 打包 iOS IPA
服务器·windows·vscode·ios·ci/cd·个人开发·敏捷流程
Lhan.zzZ21 小时前
用 Qt 构建线程安全的通讯静态库:从线程亲和性到完整工程
c++·vscode·qt·tcp/ip·udp
golang学习记1 天前
IDEA 断点调试技巧:拖拽
java·ide·intellij-idea
Halo10131 天前
VSCode设置护眼背景色
ide·vscode·编辑器
fanruitian1 天前
pycharm 使用anaconda
ide·python·pycharm
weixin_563371472 天前
Android Studio 2024 版 Device Explorer 打开方法
android·ide·android studio