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:

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐