vscode中调试cuda kernel

关于vscode中调试cpp可参考之前的博客:ubuntu vscode 基本设置 和 调试设置_ubuntu vscode 调试-CSDN博客

这篇我们来讲如何调试.cu的kernel,主要参考的是:https://www.zhihu.com/question/431782036/answer/2468791220

1、基本准备不多说,看上面知乎即可,比如vscode扩展中安装Microsoft C/C++与NVIDIA Visual Studio Code Edition,不需要安装gdb,因为使用的是cuda gdb在装cuda时应该就装好了。

2、launch.json的创建:点开侧边栏运行与调试按钮,点击“创建launch.json文件”,选择环境为CUDA C++(CUDA-GDB)。

3、使用cmake编译cuda程序,注意编译选项需要加-g -G,两个都不可少,如:set(CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS} -std=c++17 -O0 -Xcompiler -fPIC -g -G -w -gencode=arch=compute_89,code=sm_89")。

4、编译出可执行文件后,在launch.json中“program”那项填可执行文件的路径。

5、开始调试:点开侧边栏运行与调试按钮,点击绿色三角形“开始调试”按钮即可开始调试,在kernel中打断点,调试时会命中到。

6、当命中kernel函数内断点时,右下角会出现CUDA:(0,0,0)(0,0,0),表示当前执行核函数的线程块号与块内的线程号,如果想调试特定位置的值,可以点击右下角“CUDA:(0,0,0)(0,0,0)”状态栏中的数字,在上方出现弹框,在弹框中输入比如block(2,3,0)thread(8,5,0),就可以调到相应的位置继续调试。

要在VS Code使用CUDA,你需要进行以下步骤: 1. 首先,确保你已经安装了NVIDIA GPU Computing Toolkit和CUDA驱动程序,并且路径设置正确。你可以在VS Code的设置找到"code-runner.executorMap",在其添加CUDA文件的编译语句。例如,你可以在"cu"字段添加以下语句: ``` "cu": "cd $dir; nvcc $fileName -o $fileNameWithoutExt.exe -I'C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v11.7\\include\\CL' && $dir$fileNameWithoutExt" ``` 请确保将路径设置为你的实际安装路径。\[1\] 2. 如果你想使用VS Code扩展来远程控制CUDA WebGPU,你可以尝试使用名为"ECE 408 Remote Control"的扩展。该扩展允许你在本地使用VS Code作为编辑器,并将代码上传到WebGPU网站上,在Chrome浏览器运行测试并显示结果。\[2\] 3. 如果你想在VS Code编写和运行CUDA代码,你可以创建一个新的CUDA项目。你可以在VS Code创建一个新的文件,将以下示例代码粘贴到文件: ``` #include <iostream> #include <math.h> __global__ void add(int n, float *x, float *y) { for (int i = 0; i < n; i++) y\[i\] = x\[i\] + y\[i\]; } int main(void) { int N = 1<<25; float *x, *y; cudaMallocManaged(&x, N*sizeof(float)); cudaMallocManaged(&y, N*sizeof(float)); for (int i = 0; i < N; i++) { x\[i\] = 1.0f; y\[i\] = 2.0f; } add<<<1, 1>>>(N, x, y); cudaDeviceSynchronize(); float maxError = 0.0f; for (int i = 0; i < N; i++) maxError = fmax(maxError, fabs(y\[i\]-3.0f)); std::cout << "Max error: " << maxError << std::endl; cudaFree(x); cudaFree(y); return 0; } ``` 这是一个简单的CUDA程序,它将两个数组的元素相加,并计算最大误差。你可以根据需要修改代码。然后,你可以使用适当的编译命令来编译和运行该程序。\[3\] 希望这些信息对你有所帮助! #### 引用[.reference_title] - *1* *3* [VScode配置cuda开发环境](https://blog.csdn.net/lijj0304/article/details/130810197)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [在VSCode使用CUDA](https://blog.csdn.net/MyYaip/article/details/122882482)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值