VScode配置cuda开发环境的实现步骤

 更新时间:2024年07月21日 09:43:44   作者:哆啦叮当  
本文主要介绍了VScode配置cuda开发环境的实现步骤,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

因为课程学习需要,配置英伟达的cuda环境做高性能计算的测试。

1.cuda的安装

首先要去英伟达的官网下载安装cuda,安装路径可以自由选择,但是为了方便操作建议直接全部默认安装。

可以现在命令行执行nvidia-smi.exe查看目前显卡支持的最高cuda版本,右上角的cuda version就是我们要确认的版本,下载的cuda不应该比这个版本新。

cuda下载入口:CUDA Toolkit 12.1 Update 1 Downloads | NVIDIA Developer 

进去后选择对应的平台和版本

2.检查环境配置

正常情况下安装完成后是会自动配置环境变量的,但是为了保险我们还是去命令行看一下

 执行nvcc -V,若可以正常显示版本号等信息,说明正常安装。

3.配置vscode

cuda编程用的是.cu文件,我这里为了操作简单用了coderunner插件,配置.cu文件的编译

点击小齿轮选择扩展设置

 

我们直接在settings.json中编辑

 在"code-runner.executorMap": {}中加入cu文件的编译语句

"cu": "cd $dir; nvcc $fileName -o $fileNameWithoutExt.exe -I'C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v11.7\\include\\CL' && $dir$fileNameWithoutExt",
//请设置和你的安装路径一致的地址

然后我们在.cu文件的右上角点击运行符号选择用coderunner运行

下面是一个测试小程序

#include <iostream>
#include <math.h>
__global__ 
void add(int n, float *x, float *y)
{
    for (int i = 0; i < n; i++)
    y[i] = x[i] + y[i];
}

int main(void)
{
    int N = 1<<25;
    float *x, *y;

    cudaMallocManaged(&x, N*sizeof(float));
    cudaMallocManaged(&y, N*sizeof(float));

    for (int i = 0; i < N; i++) {
    x[i] = 1.0f;
    y[i] = 2.0f;
}

    add<<<1, 1>>>(N, x, y);

    cudaDeviceSynchronize();

    float maxError = 0.0f;
    for (int i = 0; i < N; i++)
    maxError = fmax(maxError, fabs(y[i]-3.0f));
    std::cout << "Max error: " << maxError << std::endl;

    cudaFree(x);
    cudaFree(y);

    return 0;
}

正常运行结果如下

这里可能会返回一个错误,大意是在path找不到cl.exe

如果是这个情况我们可以添加一个path系统环境变量

C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.33.31629\bin\Hostx64\x64
//注意这里要找到你电脑上的visual studio安装路径,找到这个文件,bin目录下面可能有两个文件夹,但是cuda运行一定要选择x64

然后重启你的vscode,再用coderunner就能正常运行啦

到此这篇关于VScode配置cuda开发环境的实现步骤的文章就介绍到这了,更多相关VScode配置cuda环境内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

相关文章

  • C++中带空格字符串的输入问题解决

    C++中带空格字符串的输入问题解决

    这篇文章主要给大家介绍了关于如何解决C++中带空格字符串的输入问题,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-04-04
  • C语言实现旅游资讯管理系统

    C语言实现旅游资讯管理系统

    这篇文章主要为大家详细介绍了C语言实现旅游资讯管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Opencv使用鼠标任意形状的抠图

    Opencv使用鼠标任意形状的抠图

    这篇文章主要为大家详细介绍了Opencv使用鼠标任意形状的抠图,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05
  • 理解C++编程中的std::function函数封装

    理解C++编程中的std::function函数封装

    这篇文章主要介绍了理解C++编程中的std::function函数封装,std::function是C++11标准中的新特性,需要的朋友可以参考下
    2016-04-04
  • C++ 基础编程之十进制转换为任意进制及操作符重载

    C++ 基础编程之十进制转换为任意进制及操作符重载

    这篇文章主要介绍了C++ 基础编程之十进制转换为任意进制及操作符重载的相关资料,需要的朋友可以参考下
    2017-02-02
  • Windows配置VSCode+CMake+Ninja+Boost.Test的C++开发环境(教程详解)

    Windows配置VSCode+CMake+Ninja+Boost.Test的C++开发环境(教程详解)

    这篇文章主要介绍了Windows配置VSCode+CMake+Ninja+Boost.Test的C++开发环境,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • C语言数据结构之学生信息管理系统课程设计

    C语言数据结构之学生信息管理系统课程设计

    这篇文章主要为大家详细介绍了C语言数据结构之学生信息管理系统课程设计,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • C语言学习之函数知识总结

    C语言学习之函数知识总结

    函数是一组一起执行一个任务的语句。每个 C 程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数。本文就为大家详细讲讲C语言中函数的相关知识点,希望有所帮助
    2022-07-07
  • C++小知识:用合适的工具来分析你的代码

    C++小知识:用合适的工具来分析你的代码

    今天小编就为大家分享一篇关于C++小知识:用合适的工具来分析你的代码,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • 一篇文章带你入门C语言:操作符

    一篇文章带你入门C语言:操作符

    这篇文章主要介绍了C语言中的运算符,文中讲解非常详细,适合初学小白进行学习,想入门C语言的朋友不妨了解下,希望能给你带来帮助
    2021-08-08

最新评论