码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • vscode远程调试Linux CUDA程序


    参考了:CUDA 01 | 第一个程序 - 知乎 (zhihu.com)

    1 本地安装插件:remote-ssh,Microsoft C/C++与NVIDIA Nsight Visual Studio Code Edition。

    2 使用remote-ssh登陆到远程的linux服务器,登陆以后看看安装的插件,需要在远程linux服务器也同时安装插件。确保提到的三个插件在远程端是可以用的。

    3 确保在远程linux服务器已经安装了cuda编译器,没有装的话点下面的链接,输入命令 nvcc -V查看安装情况。

    CUDA Toolkit 11.7 Update 1 Downloads | NVIDIA Developericon-default.png?t=M85Bhttps://developer.nvidia.com/cuda-downloads

    1. langke@ubuntu:~/my_cuda$ nvcc -V
    2. nvcc: NVIDIA (R) Cuda compiler driver
    3. Copyright (c) 2005-2021 NVIDIA Corporation
    4. Built on Sun_Feb_28_22:34:44_PST_2021
    5. Cuda compilation tools, release 10.2, V10.2.300
    6. Build cuda_10.2_r440.TC440_70.29663091_0

    4 新建一个目录用来测试,例如~/my_cuda,用vscode打开此目录

    5 在.vscode下新建lauch.json,内容如下:

    1. {
    2. // Use IntelliSense to learn about possible attributes.
    3. // Hover to view descriptions of existing attributes.
    4. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    5. "version": "0.2.0",
    6. "configurations": [
    7. {
    8. "name": "CUDA C++: Launch",
    9. "type": "cuda-gdb",
    10. "request": "launch",
    11. "program": "${fileDirname}/${fileBasenameNoExtension}",
    12. "args": [],
    13. "stopAtEntry": false,
    14. //"cwd": "${workspaceFolder}",
    15. "environment": [],
    16. "externalConsole": false,
    17. "MIMode": "gdb",
    18. "setupCommands": [
    19. {
    20. "description": "Enable pretty-printing for gdb",
    21. "text": "-enable-pretty-printing",
    22. "ignoreFailures": true
    23. }
    24. ],
    25. "preLaunchTask": "nvcc build active file",
    26. "postDebugTask": "delete nvcc output file",
    27. }
    28. ]
    29. }

     6 新建tasks.json,内容为:

    1. {
    2. "version": "2.0.0",
    3. "tasks": [
    4. {
    5. "type": "shell",
    6. "label": "nvcc build active file",
    7. "command": "/usr/local/cuda-10.2/bin/nvcc",
    8. "args": [
    9. "${file}",
    10. "-g",
    11. "-o",
    12. "${fileDirname}/${fileBasenameNoExtension}"
    13. ],
    14. "group": {
    15. "kind": "build",
    16. "isDefault": true
    17. }
    18. },
    19. {
    20. "type": "shell",
    21. "label": "delete nvcc output file",
    22. "command": "rm",
    23. "args": [
    24. "${fileDirname}/${fileBasenameNoExtension}"
    25. ],
    26. "presentation": {
    27. "reveal": "silent"
    28. },
    29. "problemMatcher": [],
    30. "group": {
    31. "kind": "build",
    32. "isDefault": true
    33. }
    34. }
    35. ]
    36. }

    7 新建test.cu,输入内容:

    1. #include
    2. int main(int argc, char **argv)
    3. {
    4. printf("cuda test\n");
    5. getchar();
    6. return 0;
    7. }

    8 把窗口切换到test.cu,点击CUDA调试按钮就可以运行了。

     

  • 相关阅读:
    C Primer Plus(6) 中文版 第5章 运算符、表达式和语句 5.6 带参数的函数
    Python3初步实践教程概要
    《动手学深度学习》(四) -- 卷积神经网络 CNN
    Kubernetes——裸机搭建集群环境
    Abnova丨Abnova Magnetic Beads磁珠标记方案
    如何在Google App Engine上构建一个简单的应用
    ThreadLocal详解
    自动化立体仓库AS/RS货架|分离式仓库货架与整体式仓库货架如何运用?
    java中如何创建一个多线程类呢?
    Top monitor[2.1.11] 开源
  • 原文地址:https://blog.csdn.net/oushaojun2/article/details/126836825
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号