• 配置VScode开发环境-CUDA编程


    如果觉得本篇文章对您的学习起到帮助作用,请 点赞 + 关注 + 评论 ,留下您的足迹💪💪💪

    本文主要介绍VScode下的CUDA编程配置,因此记录以备日后查看,同时,如果能够帮助到更多人,也不胜荣幸。

    一、创建compile_commands.json

    compile_commands.json 文件能够有效提高一些工具(比如vscode)的代码跳转、补全等功能。

    1、cmake中使用

    cmake工程生成 compile_commands.json 文件比较简单:

    cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1
    
    • 1

    2、make中使用

    安装bear:

    sudo apt-get install bear
    
    • 1

    执行:

    bear -- make -j8
    
    • 1

    会生成compile_commands.json文件

    二、安装必要的插件

    1.远程连接ssh

    Remote-SSH

    2.C/C++

    在这里插入图片描述

    3.C/C++ Extension Pack

    在这里插入图片描述

    4.Nsight Visual Studio Code Edition

    在这里插入图片描述

    5. vscode-cudacpp

    在这里插入图片描述

    三、json文件配置

    1、配置c_cpp_properties.json

    Ctrl+Shift+P搜索C/C++:Edit Configurations(JSON),点击进入:
    在这里插入图片描述
    随后生成.vscode文件:
    在这里插入图片描述
    c_cpp_properties.json配置为如下所示:

    {
        "configurations": [
            {
                "name": "Linux",
                "includePath": [
                    "${workspaceFolder}/**"
                ],
                "defines": [],
                "compilerPath": "/usr/bin/gcc",
                "cStandard": "c17",
                "cppStandard": "gnu++17",
                "intelliSenseMode": "linux-gcc-x64",
                "configurationProvider": "ms-vscode.makefile-tools",
                "compileCommands": "${workspaceFolder}/compile_commands.json"
            }
        ],
        "version": 4
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    “compileCommands”: "${workspaceFolder}/compile_commands.json"为新添加的内容。

    配置路径也可以在includePath中进行配置:

    {
        "configurations": [
            {
                "name": "Linux",
                "includePath": [
                    "${workspaceFolder}/**",
                    "/usr/local/cuda/include/**"
                ],
                "defines": [],
                "compilerPath": "/usr/bin/gcc",
                "cStandard": "c17",
                "cppStandard": "gnu++17",
                "intelliSenseMode": "linux-gcc-x64",
                "configurationProvider": "ms-vscode.makefile-tools"
            }
        ],
        "version": 4
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    2、配置setting.json

    在.vscode文件夹中创建setting.json文件,添加内容:

    {
        "files.associations": {
            "*.cu":"cuda-cpp"
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    参考查询网址vscode language identifier
    相关博客:
    博客一
    博客二

    3、配置tasks.json

    1.Ctrl+Shift+P搜索Tasks:Configures Task,点击进入:
    在这里插入图片描述
    2.选择 使用模板创建tasks.json文件(可能是英文形式)
    在这里插入图片描述
    3.选择Others
    在这里插入图片描述
    最终tasks.json文件内容:

    {
        "version": "2.0.0",
        "tasks": [
            {
                "label": "make",
                "type": "shell",
                "command": "make -j16"
            }
        ]
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    cmake编译tasks.json:

    {
        // See https://go.microsoft.com/fwlink/?LinkId=733558
        // for the documentation about the tasks.json format
        "version": "2.0.0",
        "options": {
            "cwd": "${workspaceFolder}/build"
        },
        "tasks": [
            {
                "type":"shell",
                "label": "cmake",
                "command": "cmake",
                "args": [
                    ".."
                ]
            },
            {
                "label": "make",
                "group":{
                    "kind": "build",
                    "isDefault": true
                },
                "command": "make",
                "args": [
                    "-j8"
                ]
            },
            {
                "label": "Build",
                "dependsOrder": "sequence",     // 按照顺序执行
                "dependsOn":[
                    "cmake",
                    "make"
                ]
            }
        ]
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37

    4、配置launch.json

    1.Ctrl+Shift+P搜索Debug:Add Configuration,点击进入:
    在这里插入图片描述2.选择 CUDA C++(CUDA-GDB)
    在这里插入图片描述
    生成launch.json文件。

    增加"program": “${workspaceFolder}/cudaAPP”,cudaAPP是编译出的可执行文件。

    {
        // 使用 IntelliSense 了解相关属性。 
        // 悬停以查看现有属性的描述。
        // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
        "version": "0.2.0",
        "configurations": [
            {
                "name": "CUDA C++: Launch",
                "type": "cuda-gdb",
                "request": "launch",
                "program": "${workspaceFolder}/cudaAPP"
            },
            {
                "name": "CUDA C++: Attach",
                "type": "cuda-gdb",
                "request": "attach"
            }
        ]
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    相关博客
    Cmake配置C++:

    {
        // 使用 IntelliSense 了解相关属性。 
        // 悬停以查看现有属性的描述。
        // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
        "version": "0.2.0",
        "configurations": [
            {
                "name": "(gdb) 启动",
                "type": "cppdbg",
                "request": "launch",
                "program": "${workspaceFolder}/build/test",
                "args": [],
                "stopAtEntry": false,
                "cwd": "${fileDirname}",
                "environment": [],
                "externalConsole": false,
                "MIMode": "gdb",
                "setupCommands": [
                    {
                        "description": "为 gdb 启用整齐打印",
                        "text": "-enable-pretty-printing",
                        "ignoreFailures": true
                    },
                    {
                        "description": "将反汇编风格设置为 Intel",
                        "text": "-gdb-set disassembly-flavor intel",
                        "ignoreFailures": true
                    }
                ],
    
                "preLaunchTask": "Build",
                "miDebuggerPath": "/usr/bin/gdb"
            }
    
        ]
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36

    附录:vs code中的变量解释

    以:home/s/test/.vscode/tasks.json为例
    ${workspaceFolder}:表示当前workspace文件夹路径,即home/s/test
    ${workspaceRootFolderName}:表示workspace的文件夹名字,即test
    ${file}:文件自身绝对路径,即home/s/test/.vscode/tasks.json
    ${relativeFile}:文件在workspace的路径,即.vscode/tasks.json
    ${fileBasenameNoExtension}:当前文件的文件名,不带后缀,即tasks
    ${fileBasename}:当前文件的文件名,即tasks.json
    ${fileDirname}:当前所在文件夹路径,即home/s/test/.vscode
    ${fileExtname}:当前文件的后缀,即.json
    ${lineNumber}:当前文件光标所在行数
    ${env:PATH}:系统中的环境变量

    如果您觉得这篇文章对你有帮助,记得 点赞 + 关注 + 评论 三连,您只需动一动手指,将会鼓励我创作出更好的文章,快留下你的足迹吧💪💪💪

  • 相关阅读:
    C盘爆满上热搜,简单几招释放几十G空间,一下子就不红了
    CPU占用过高分析
    Find My键盘|苹果Find My技术与键盘结合,智能防丢,全球定位
    gerapy下载和安装以及部署全流程
    发布管理工作流程介绍
    MHDNet
    线程池的使用
    使用 Python 的自主机器人算法 Dijkstra 路径规划
    判断链表中是否有环
    判断字符串是否唯一
  • 原文地址:https://blog.csdn.net/qq_45032341/article/details/133843192