【教程】【CUDA C++】使用VSCode搭建WSL + CUDA + C/C++开发环境
vscode吧
全部回复
仅看楼主
level 12
MISTIS 楼主
先占个坑,贴吧吞贴太快了。由于Windows下MSVC无法在VSC编译CUDA项目,因此开个贴备份一下使用GDB在WSL2和VSC编译运行CUDA项目的教程。(甚至目前官方的解释是VSC无法使用GDB调试CUDA项目,会在未来发布的CUDA Toolkit支持,但是我听到的只是鸽子叫)
传统1楼给镇楼图
P.S.服了百度了,得用魔法才能发帖,海外发不了也是傻了。
2022年09月10日 12点09分 1
level 12
MISTIS 楼主
安装WSL + Ubuntu
WSL(Windows Subsystem Linux) 是适用于Linux的Windows虚拟子系统,它基于Linux的发行版本Ubuntu并使用GCC进行C/C++的编译运行工作。打开设定路径
控制面板 > 程序 > 启动或关闭Windows功能
选择适用于Linux的Windows子系统并在安装时选择WSL2版本,当然也可以使用命令更换WSL版本。安装过程可能会重启系统。
> wsl.exe --set-version [OS_NAME] 2
如果在之后需要卸载Ubuntu可以执行以下命令查询所有安装的子系统并删除指定的系统。
> wsl.exe -list -all
> wsl.exe -unregister [OS_NAME]
由于Windows Store的Ubuntu默认安装在OS盘,因此需要手动下载并安装在自定义目录下。通过下载链接,下载Ubuntu的发行版本。下载完成后,使用压缩工具(推荐7-zip)打开,将文件Ubuntu_x64.appx解压到Ubuntu文件夹,注意,这个文件夹将是Ubuntu虚拟磁盘的路径。
【Ubuntu下载地址】
https://wslstorestorage.blob.core.windows.net/wslblob/Ubuntu2004-220404.appxbundle
【7-Zip下载地址】
https://www.7-zip.org/a/7z2201-x64.exe
【Windows Terminal下载地址】
https://aka.ms/terminal
进入目录 Ubuntu右键,选择在终端中打开后进入Windows Terminal终端。运行如下命令,开始安装Ubuntu系统。
> start ubuntu
完成安装后直接关闭窗口,使用无密码root账户。使用WindowsTerminal打开Ubuntu并输入下面的命令,对其进行更新。
>sudo apt-get update
>sudo apt-get upgrade
2022年09月10日 12点09分 3
请问这里ubuntu为什么需要手动下载啊,我安装WSL之后默认直接给我把ubuntu安装好了,不知道要不要卸载重新安装
2023年03月30日 11点03分
@哩哩啦啦嘟º 自动下载的是安装在C盘的
2023年03月30日 15点03分
level 12
MISTIS 楼主
2022年09月10日 12点09分 4
level 12
MISTIS 楼主
安装C/C++编译器和VSC扩展
使用Windows Terminal 打开Ubuntu,并依次输入下列命令,安装GCC编译器用于编译运行C/C++程序。
> apt-getinstall build-essential
> apt-getinstall gdb
完成安装后通过命令检测是否完成了安装。
> gdb -v
> gcc -v
> g++ -v
如果出现了版本信息,说明已经完成了C/C++编译器的安装。
在对应目录,创建工程文件夹并使用VSC打开,VSC会自动建立与WSL的本地链接,现在需要安装支持C++的VSC扩展。如果在Windows的环境下已经安装,直接可以选择在WSL: Ubuntu中安装安装在Ubuntu上。如果需要CMake,同样可以使用相同的方式进行安装。
新建一个C++文件,对VSC进行编译运行配置。ctrl + shift+ P 输入C++选择如图选项,按照图片顺序对工程进行配置。
工程配置使用Linux,根据工程使用的具体语言,可以使gcc或g++编译器。
2022年09月10日 12点09分 5
GCC编译器安装命令有误,应为: > apt-get install build-essential > apt-get install gdb
2022年09月10日 14点09分
level 12
MISTIS 楼主
代码智能提示和C/C++标准选择c17和c++20即可,GCC会将C/C++代码分开进行编译。(如果使用CUDA,C++需要使用C++17标准)
ctrl+ shift+ P 输入tasks,选择选项 C/C++: g++ 生成 tasks.json 文件,这样就可以对工程源文件进行编译,调试与运行了。
完成了配置的工程目录。以后的工程可以直接将 .vscode 文件夹拷贝到目标工程文件夹下。在使用编译器多线程时,需要在 tasks.json 文件中 arg 节点内加入 -pthread 命令即可。
2022年09月10日 13点09分 6
level 12
MISTIS 楼主
安装Nvidia图形驱动
【图形驱动下载地址】https://www.nvidia.com/Download/index.aspx首先应该先给Windows安装Nvidia的图形驱动。在Nvidia开发者网站下载驱动程式并按照步骤进行安装。注意,相同的设备在不同的机器上可能驱动不形同,如桌面平台和移动平台的驱动并不相同,只需要安装图形驱动即可。
完成安装后,可以在Ubuntu进行安装验证,输入下面的命令验证驱动是否安装完成。
> nvidia-smi
2022年09月10日 13点09分 7
level 12
MISTIS 楼主
安装CUDA开发环境
进入CUDA开发者网站下载CUDA编译环境,选择Linux和WSL Ubuntu的deb版本,在Ubuntu中输入对应的命令进行安装。完成安装后,输入以下命令,查看是否已经完成了CUDA编译环境的配置
> nvcc --version
初始化一个demo工程文件夹并使用code打开
> mkdir test_cuda_cpp
> touch test_cuda_cpp/test.cu
> code test_cuda_cpp
安装 Nvidia Nsight 拓展。
设定 tasks.json 文件作为编译命令,如图所示。
完成demo的编写后,通过
运行 > 运行任务 > CUDA C++ > 继续不扫描任务输出
完成编译输出。
在终端输入如下命令即可运行编译输出。由于目前CUDA不支持WSL调试,因此只能进行编译运行。
> ./test
2022年09月10日 13点09分 8
CUDA Toolkit 11.7 Update 1 Downloads | NVIDIA Developer https://developer.nvidia.com/cuda-downloads
2022年09月10日 13点09分
level 12
MISTIS 楼主
目前不清楚什么时候CUDA+GDB可以在VSCode+WSL2的环境下进行调试,希望英伟达gkd,有任何问题,请联络尻尻贰〇⑧柒陆伍夭寺彡⑥
2022年09月10日 13点09分 9
level 12
MISTIS 楼主
终于发上来了,泪目!
来个PDF补档,防止度娘抽风~
[有效] https://pan.baidu.com/s/1JgbpTJpxUW1M7yoXF-2dOw?pwd=CUDA
提取码: CUDA
2022年09月10日 13点09分 10
感谢楼主[太开心]
2023年09月10日 11点09分
level 1
不明觉厉[欢呼]
2022年09月10日 14点09分 11
bilibili关注永雏塔菲[太开心]
2022年09月11日 06点09分
@MISTIS 关注塔菲喵,关注永雏塔菲谢谢喵
2023年03月12日 08点03分
level 2
[泪]初学cuda,装了好久还是不能调试,原来真的是不支持
2022年09月25日 08点09分 12
level 12
MISTIS 楼主
CUDA更新11.8
支持了C++层面的调试,但是对于CUDA库如cuBLAS等调试会报API错误
The application cannot be further debugged.
因此对于当前WSL GDB的调试仅仅「只可意会,不可言传」。
2022年10月21日 11点10分 13
level 1
楼主有遇到过launch后系统崩溃么
2022年11月10日 12点11分 14
看13楼。
2022年11月14日 04点11分
level 1
[泪]
2023年03月04日 07点03分 15
1