CUDA编程学习(三)VScode配置
VScode
1.官网下载VScode
2.在Vscode中安装WSL插件

3.直接在vsoce中远程连接,点击左下角的

打开终端,输入pwd查看路径

4.VScode换进配置
(1)安装必要的插件




(2)创建compile_commands.json
安装bear(链接为bear的官方介绍,Bear是一个为clang工具生成编译数据库的工具):GitHub - rizsotto/Bear: Bear is a tool that generates a compilation database for clang tooling.
https://github.com/rizsotto/Bear
sudo apt-get install bear
检查是否安装成功:dpkg -l | grep bear

更新库:sudo apt-get update
进入tensorrt_starter-main/chapter2-cuda-programming/2.3-matmul-basic路径输入bear -- make -j16 (输入错了的话输入 make clean清除)
运行韩君老师2.3节程序的的程序出现以下报错:
u22045@LJJ:~/vscode/hanjun/tensorrt_starter-main/chapter2-cuda-programming/2.3-matmul-basic$ bear -- make -j16
Compile Dependence CXX build/main.cpp.mk
Compile Dependence CUDA build/matmul_gpu_basic.cu.mk
Compile Dependence CXX build/utils.cpp.mk
make: /usr/local/cuda-12/bin/nvcc: No such file or directory
src/main.cpp:2:10: fatal error: cuda_runtime.h: No such file or directory
2 | #include <cuda_runtime.h>
错误原因:cuda路径不对,韩君老师的程序上面写的是CUDA_VER := 12
只要改为自己的版本即可
运行:bear -- make -j16程序后会生成compile_commands.json
(3)设置c_cpp_properties.json与setting.json实现函数跳转
创建c_cpp_properties.json
①CTRL+SHIFT+P (也可以在搜索栏目输入<),出现以下界面

②输入configuration(JSON),选择该选项后自动生成c_cpp_properties.json

③在c_cpp_properties.json文件中分别添加
"/usr/local/cuda/include/**"
"compileCommands":"${workspaceFolder}/compile_commands.json"
用于识别跳转文件的路径

④在settings.json中末尾处添加
"*.cu":"cuda-cpp"
用于识别CUDA代码

以上方法可实现c++和cuda程序的自动跳转,关闭vscode软件重启后即可实现自动补全
(4)设置tasks.json:task.json文件的主要作用是在每次gdb调试的时候自动更新程序数据
实现gdb调试
①CTRL+SHIFT+P (也可以在搜索栏目输入<),出现以下界面
输入:Tasks:configure Task

再次点击搜索框选择
,

再次选择:
,创建一个新文件,从头开始写

tasks.json中文件的内容为

(5)设置lanuch.json
①CTRL+SHIFT+P (也可以在搜索栏目输入<),出现以下界面
输入:debug:Add Configuration后选择第一个

②再次选择:CUDA C++(CUDA-GDB),自动生成lanuch文件,lanuch文件中的内容为:

在最后使用gdb调试的时候出现了这样的错误,不知是由何种原因导致的,无法进行GDB调试:
尝试解决
①:安装GDB Debug插件
注:无效
②:在编译的过程中强制指定 make DEBUG=1 (问题解决)
测试流程,1.先使用make clean清除所有编译数据 2.重新编译:bear -- make -j16 DEBUG=1
3.重新DEBUG程序即可实现断点调试
安装
对语法进行高亮显示
5.VSCODE使用BUG记录
(1) 在使用VSCODE编译CUDA程序时.cu文件可以找到#include <cuda_runtime.h>,.cpp文件找不到#include <cuda_runtime.h>
在使用VScode编译cuda程序过程中.cu文件中的头文件不会出现#include <cuda_runtime.h>找不到的情况

但在.cpp文件中会找不到程序

解决方法1:
①按 Ctrl+Shift+P → 输入 C/C++: Edit Configurations (UI)。

②在inculde中添加cuda文件地址,/usr/local/cuda-11.7/include

解决方法2:
在c_cpp_properties.json中添加
"/usr/local/cuda/include/**"

注:解决完后重启VScode就好了
(2) 使用DEBUG调试的可执行文件推理速度会变得很慢
(3)wsl代理开启方法
无效方法:在WSL2中使用宿主机的代理 - Yoyo's bloghttps://blog.yzzi.icu/post/proxy-using-hosts-within-wsl2/
亲测有效
①y百分百解决 wsl2 无法使用主机网络代理_wsl代理-CSDN博客https://blog.csdn.net/wzx_442011334/article/details/144554047
② 开启代理的TUN模式
(4)程序找不到opencv头文件

修改Makefile:
更多推荐


所有评论(0)