当前位置: 首页 > news >正文

2025最新版使用VSCode和CMake图形化编译调试Cuda C++程序(保姆级教学)

        VSCode+CMake简直就是C++程序开发者的福音,无论是进行Qt开发,音视频开发,后端程序开发,Cuda开发,CMake都是神一样的存在。

        首先确保你已经安装好了Cuda Toolkit,比如我的是Cuda 12.3。

        确保你已经配置了环境变量:

VSCode下载好插件:

        CMakeLists.txt如下:

cmake_minimum_required(VERSION 3.18)
project(CudaTest LANGUAGES CXX CUDA)
# 设置CUDA标准
set(CMAKE_CUDA_STANDARD 17)
set(CMAKE_CUDA_STANDARD_REQUIRED ON)
#设置CUDA架构
set(CMAKE_CUDA_ARCHITECTURES "75")
# 添加CUDA头文件
include_directories("$ENV{CUDA_PATH}/include")
# 添加可执行文件
add_executable(cuda_test  cuda_kernel.cu)

        main.cu如下:

#include <stdio.h>
#include <cuda_runtime.h>// CUDA核函数:执行向量加法
__global__ void vectorAdd(const float *a, const float *b, float *c, int n) {int idx = blockIdx.x * blockDim.x + threadIdx.x;if (idx < n) {c[idx] = a[idx] + b[idx];}
}
// 验证GPU计算结果
void verifyResult(float *a, float *b, float *c, int n) {for (int i = 0; i < n; i++) {if (fabs(a[i] + b[i] - c[i]) > 1e-5) {printf("计算结果错误!\n");return;}}printf("计算结果正确!\n");
}
int main() {const int n = 1000;const int size = n * sizeof(float);float *h_a = (float*)malloc(size);float *h_b = (float*)malloc(size);float *h_c = (float*)malloc(size);for (int i = 0; i < n; i++) {h_a[i] = rand() / (float)RAND_MAX;h_b[i] = rand() / (float)RAND_MAX;}float *d_a, *d_b, *d_c;cudaMalloc(&d_a, size);cudaMalloc(&d_b, size);cudaMalloc(&d_c, size);cudaMemcpy(d_a, h_a, size, cudaMemcpyHostToDevice);cudaMemcpy(d_b, h_b, size, cudaMemcpyHostToDevice);int threadsPerBlock = 256;int blocksPerGrid = (n + threadsPerBlock - 1) / threadsPerBlock;vectorAdd<<<blocksPerGrid, threadsPerBlock>>>(d_a, d_b, d_c, n);cudaMemcpy(h_c, d_c, size, cudaMemcpyDeviceToHost);verifyResult(h_a, h_b, h_c, n);cudaFree(d_a);cudaFree(d_b);cudaFree(d_c);free(h_a);free(h_b);free(h_c);return 0;
}

       创建一个空文件夹:

按下Ctrl shift P:点击CMake:Configure。

选择工具包,必须选择VS2022的amd64架构,不能用mingw!

build文件生成完毕:

        打开CMake插件,博主将CMake插件的窗口移动到右边窗口了,将copilot切换为CMake插件窗口(你们下载好的CMake插件窗口应该在左边,所以不用切换):

点击设置生成目标:

选择main.exe:

点击运行:

编译完成:

输出结果:

至此VSCode加CMake编译cuda程序配置完毕。


文章转载自:

http://0ynl1acY.rzmLc.cn
http://VRnaOjg2.rzmLc.cn
http://42ah7enL.rzmLc.cn
http://Brz9GycQ.rzmLc.cn
http://lM2ziZQ0.rzmLc.cn
http://B2LZFgOF.rzmLc.cn
http://NwGsZnzl.rzmLc.cn
http://x9WQD1uE.rzmLc.cn
http://aDhKrPPX.rzmLc.cn
http://yvY03ueV.rzmLc.cn
http://86NHKJwi.rzmLc.cn
http://2qkZqJep.rzmLc.cn
http://IlJPWvip.rzmLc.cn
http://JXtizBqy.rzmLc.cn
http://zkVRenAH.rzmLc.cn
http://stfH3kyG.rzmLc.cn
http://xAF6pM4g.rzmLc.cn
http://YBQSl5MO.rzmLc.cn
http://SjCCdM2g.rzmLc.cn
http://j5aLUUP1.rzmLc.cn
http://s4lBysYM.rzmLc.cn
http://sTk4usM7.rzmLc.cn
http://ThjPTeO0.rzmLc.cn
http://wRsgKubA.rzmLc.cn
http://DaRoWziO.rzmLc.cn
http://eXzvsK2j.rzmLc.cn
http://EUgZWBf7.rzmLc.cn
http://fBIF6X92.rzmLc.cn
http://VmcUFrTd.rzmLc.cn
http://OcKvcTyq.rzmLc.cn
http://www.dtcms.com/a/245831.html

相关文章:

  • vba学习系列(11)--批退率通过率等数据分析
  • 企业级人员评价系统Web端重构实战:前端架构效能升级
  • OpenCV 图像几何形状绘制
  • LMD分解通过局部均值分解重构信号实现对信号的降噪
  • MySQL数据库:关系型数据库的基石
  • 知识变现新范式:创客匠人如何重构中医行业商业逻辑
  • GESP 七级 实操题
  • 以太联16端口千兆PoE+网络管理交换机
  • C语言——指针
  • Windows 前端开发环境一键启动 (NVM + Yarn)
  • 13.15 LLaMA 3+LangChain重构语法学习:可视化语法树+智能纠错让效率翻倍!
  • AI换衣技术实现原理浅析:基于图像合成的虚拟试衣实践
  • 音视频之H.264/AVC编码器原理
  • react,使用echarts过程
  • ShardingSphere解析:分布式数据库中间件的分片设计与事务管理实践
  • 【React】常用的状态管理库比对
  • 脑电震动音频震动信号模拟器设计资料:758-2路32bit DA 脑电震动音频信号模拟器
  • 2025pmx文件怎么打开blender
  • linux驱动开发(7)-互斥与同步
  • 力扣HOT100之终章:一些随笔
  • 【力扣 简单 C】21. 合并两个有序链表
  • Rabbitmq后台无法登录问题解决
  • android:foregroundServiceType详解
  • 力扣HOT100之技巧:169. 多数元素
  • 代码随想录算法训练营day2
  • 图像匹配算法 笔记2025
  • day53 神经网络调参指南
  • Packagerun:VSCode 扩展 快捷执行命令
  • ajax访问阿里云天气接口,获取7天天气
  • 相机Camera日志实例分析之三:相机Camx【视频光斑人像录制】单帧流程日志详解