如何优雅地用VScode在Ubuntu服务器上跑cuda代码

0:安装相关软件

  • VScode 及对应插件

    如何优雅地用VScode在Ubuntu服务器上跑cuda代码_第1张图片

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

    如何优雅地用VScode在Ubuntu服务器上跑cuda代码_第2张图片

  • 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配置远程环境

如何优雅地用VScode在Ubuntu服务器上跑cuda代码_第3张图片

 点+号或者setting的符号

如何优雅地用VScode在Ubuntu服务器上跑cuda代码_第4张图片

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

如何优雅地用VScode在Ubuntu服务器上跑cuda代码_第5张图片

Host  //随便取
  HostName  //服务器IP
  ForwardX11 yes //三个允许X11的配置
  ForwardX11Trusted yes
  ForwardAgent yes
  User  //登录用户ID
  Port //服务器端口号
  IdentityFile "" //本地RSA密钥位置

如何生成RSA密钥请自行百度,MAC和Windows略有区别。本地留私钥,.pub中的公钥保存在服务器端 ~/.ssh/authorized_keys 文件内(添加在后面即可)

如何优雅地用VScode在Ubuntu服务器上跑cuda代码_第6张图片

 登录成功

2:用Nsight插件配置.cu的编译运行

到刚刚一步已经可以在VScode上跑.cu的代码了。

如何优雅地用VScode在Ubuntu服务器上跑cuda代码_第7张图片

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

如何优雅地用VScode在Ubuntu服务器上跑cuda代码_第8张图片

 添加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

如何优雅地用VScode在Ubuntu服务器上跑cuda代码_第9张图片

{
    "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库所以添加

配置完成后只需要每次设置断点然后点一下就可以跑了。

如何优雅地用VScode在Ubuntu服务器上跑cuda代码_第10张图片

第二步有问题可以看官方文档:Getting Started with the CUDA Debugger :: NVIDIA Nsight VSCE Documentationhttps://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会不报任何错误但是就是不开启

如何优雅地用VScode在Ubuntu服务器上跑cuda代码_第11张图片

比如这里Display number为1 对应的X服务就是 Xming Server1:0

因此需要在Xming安装目录增加X*.hosts,并为服务器增加对应权限(这里是X1.hosts)

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

如何优雅地用VScode在Ubuntu服务器上跑cuda代码_第12张图片

以及修改完配置后需要重启VScode的远程连接 

4:最后VScode中的测试

Xclock

如何优雅地用VScode在Ubuntu服务器上跑cuda代码_第13张图片

cuda上跑的Julia集demo code 

如何优雅地用VScode在Ubuntu服务器上跑cuda代码_第14张图片

搞定!

你可能感兴趣的:(环境配置,c++,vscode,ubuntu,服务器,ssh)