VS实现Cuda/C++的远程编译运行

VS实现Cuda/C++的远程编译运行

最近想做一些论文代码的复现,需要用到写一些Cuda程序,由于自己用的电脑没有N卡,只能用服务器上的GPU,但又不想在服务器上调试,就想通过本地编写代码,在服务器上编译运行。查了一些资料,发现C++的远程编译运行比较容易,但是Cuda程序却很少有资料,现有的资料都是用Nsight做远程的Debug,还需要安装Nsight客户端,端口转发什么的,比较麻烦。经过研究,成功实现需求。

前提

本地已经安装好Visual studio,并且通过Remote-ssh插件配置好远程连接服务器。远程服务器上的Cuda环境已经安装好。

工具

.1.C/C++插件
一定要通过VS安装到服务器上,直接安装不行就通过 Install from VSIX安装。
在这里插入图片描述
2.Nsight Visual Studio Code Edition 插件
同样要安装到服务器上。
在这里插入图片描述

C++/Cuda运行

C++对应:g++ build and debug active file
Cuda对应:CUDA C++: Launch
在这里插入图片描述

创建launch.json

内容如下:
{
“version”: “0.2.0”,
“configurations”: [

  {
    "name": "CUDA C++: Launch",
    "type": "cuda-gdb",
    "request": "launch",
    "program": "${fileDirname}/${fileBasenameNoExtension}",
    "args": [], 
    "stopAtEntry": false,
    "cwd": "${workspaceFolder}",
    "environment": [],
    "externalConsole": false,
    "MIMode": "gdb",
    "setupCommands": [
      {
        "description": "Enable pretty-printing for gdb",
        "text": "-enable-pretty-printing",
        "ignoreFailures": true
      }
    ],
    "preLaunchTask": "nvcc build active file",
    "postDebugTask": "delete nvcc output file",
  },

  {
    "name": "g++ build and debug active file",
    "type": "cppdbg",
    "request": "launch",
    "program": "${fileDirname}/${fileBasenameNoExtension}",
    "args": [],
    "stopAtEntry": false,
    "cwd": "${workspaceFolder}",
    "environment": [],
    "externalConsole": false,
    "MIMode": "gdb",
    "setupCommands": [
      {
        "description": "Enable pretty-printing for gdb",
        "text": "-enable-pretty-printing",
        "ignoreFailures": true
      }
    ],
    "preLaunchTask": "g++ build active file",
    "postDebugTask": "delete output file",
    "miDebuggerPath": "/usr/bin/gdb"
  }
]

}

在这里插入代码片
创建task.json

内容如下:

{
    "tasks": [
        {
            "type": "shell",
            "label": "g++ build active file",
            "command": "/usr/bin/g++",
            "args": [
                "-std=c++11",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "options": {
                "cwd": "/usr/bin"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        },
        {
            "type": "shell",
            "label": "delete output file",
            "command": "rm",
            "args": [
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "presentation": {
                "reveal": "silent"
            },
            "problemMatcher": [],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        },
        {
            "type": "shell",
            "label": "nvcc build active file",
            "command": "/usr/local/cuda-10.0/bin/nvcc",
            "args": [
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        },
        {
            "type": "shell",
            "label": "delete nvcc output file",
            "command": "rm",
            "args": [
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "presentation": {
                "reveal": "silent"
            },
            "problemMatcher": [],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ],
    "version": "2.0.0"
}

测试

C++:
在这里插入图片描述
Cuda:
在这里插入图片描述
搞定!!!

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值