如何优雅地用VScode在Ubuntu服务器上跑cuda代码
0:安装相关软件
-
VScode 及对应插件

推荐VScode配置好远程服务后在服务端添加如下插件

-
Xming Xming X Server for Windows download | SourceForge.netDownload Xming X Server for Windows for free. X Window System Server for Windows. Xming is the leading X Window System Server for Microsoft Windows 8/7/Vista/XP (+ server 2012/2008/2003). It is fully featured, small and fast, simple to install and because it is standalone native Microsoft Windows, easily made portable (not needing a machine-specific installation).
https://sourceforge.net/projects/xming/本地安装 目的是给本地开启X服务(不然服务器跑出来的图片没法回显到你的本地)
安装一路next即可
-
CUDA
服务器端安装
需要在~/.bashrc中添加环境变量(资料一堆,不赘述了)

1:用Remote-SSH配置远程环境

点+号或者setting的符号

在.ssh\config中添加如下配置

Host //随便取HostName //服务器IPForwardX11 yes //三个允许X11的配置ForwardX11Trusted yesForwardAgent yesUser //登录用户IDPort //服务器端口号IdentityFile "" //本地RSA密钥位置
如何生成RSA密钥请自行百度,MAC和Windows略有区别。本地留私钥,.pub中的公钥保存在服务器端 ~/.ssh/authorized_keys 文件内(添加在后面即可)

登录成功
2:用Nsight插件配置.cu的编译运行
到刚刚一步已经可以在VScode上跑.cu的代码了。

但是懒得每次都敲,并且无法设置断点调试,所以用Nsight插件辅助一下。

添加cuda C++ launch,自动生成的launch.json文件中有两个CUDA调试器,只需要配置第一个。
配置信息如下:
{"name": "CUDA C++: Launch", //默认"type": "cuda-gdb", //默认"request": "launch", //默认//需要运行的文件,我这里是文件夹下的无扩展名运行文件"program": "${fileDirname}/${fileBasenameNoExtension}", //launch前的编译任务,我这里是mynvcc"preLaunchTask": "mynvcc",//环境配置,与第三部分相关"env":{"DISPLAY":"localhost:10.0"},
},
因为.cu文件在launch之前还需要经过nvcc的编译,所以我们需要在launch.json之前增加一个task

{"version": "2.0.0","tasks": [{"label": "mynvcc", //与launch.json的preLaunchTask保持一致"type": "shell","command": "nvcc","args": ["-g","-G","-o","${fileDirname}/${fileBasenameNoExtension}","${file}","-lglut -lGLU -lGL"]}]
}
Note:args自己配置即可,后面加的-lglut…是因为俺要跑的代码里需要用到系统的openGL库所以添加
配置完成后只需要每次设置断点然后点一下就可以跑了。

第二步有问题可以看官方文档:Getting Started with the CUDA Debugger :: NVIDIA Nsight VSCE Documentation
https://docs.nvidia.com/nsight-visual-studio-code-edition/cuda-debugger/index.html
3:用XMing添加X服务
前面的远程服务基于ssh的,无法将涉及到图形的结果回传,所以用XMing添加X服务。具体配置参考这篇博客
vscode远程连接服务器+X11插件图形化界面_stoneyshi的博客-CSDN博客_vscode图形化界面vscode远程连接服务器+X11插件图形化界面0.操作步骤1.配置vscode+ssh远程连接服务器(1)在服务器端查看IP地址和端口号(2)在本地vscode安装Remote-SSH插件(3)配置免密连接2.在本地安装Xming(1)开启Xming服务(2)修改Xming配置3.配置本地vscode Remote-SSH与服务器连接相关的设置(1)在本地vscode中安装Remote X11(SSH)插件(2)在远程服务器配置4.在服务器要使用GUI的工程中设置.vscode/launch.json (https://blog.csdn.net/Stone_hello/article/details/120041495
补充
涉及到多个用户登录同一服务器的场景,需要在XLaunch中设置不同的ID,否则XLaunch会不报任何错误但是就是不开启

比如这里Display number为1 对应的X服务就是 Xming Server1:0
因此需要在Xming安装目录增加X*.hosts,并为服务器增加对应权限(这里是X1.hosts)

还有一个需要注意的 就是在服务器环境变量中最好设置为本机IP,链接中设置为localhost可能会有问题。

以及修改完配置后需要重启VScode的远程连接
4:最后VScode中的测试
Xclock

cuda上跑的Julia集demo code

搞定!
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
