windows下,在vscode中使用cuda进行c++编程

server/2024/10/18 6:07:54/

cuda_0">安装cuda

CUDA Toolkit Downloads | NVIDIA Developer

这里网上教程多的是,在这个网址下载安装即可

我这台电脑因为重装过,所以省去了安装步骤,但是要重新配置环境变量。我重新找到了重装之前的CUDA位置(关注这个bin文件夹所在的目录)
在这里插入图片描述
在环境变量中添加了两个变量(这个V11_7我也不知道干嘛的,看别人一键安装教程里面有这种变量,所以也加上了),并在Path中添加bin目录 %CUDA_PATH%\bin 。接着在 cmd 内输入 nvcc --version ,能输出版本号就说明配置好了。
在这里插入图片描述

然后就是最关键的,因为脱离了VS,所以待会编译时会报错Cannot find compiler 'cl.exe' in PATH。通过 everything 软件查到 cl.exe 在 VS 的相关目录中(微软真该死),于是在 Path 中再加上这个目录就好了。
在这里插入图片描述
于是Path最终加上了:
在这里插入图片描述

开始写代码

创建main.cu,填入下面的代码。
这段代码使用了 cuda 相关库,对两个数组使用 cudaMalloc 申请内存,并为数组添加元素,成为[0, 1, 2, 3, …, 99]。接着通过 vec_add 开启多个线程并行处理多个数组元素,然后使用 cudaDeviceSynchronize 等待所有线程结束,再继续下面的输出流程。

我们输入nvcc -o main .\main.cu,编译得到main.exe、main.exp、main.lib
接着运行 main.exe ,控制台打印运行结果,即 0 2 4 6 … 198

#include <iostream>
#include <cuda_runtime.h>
#include <device_launch_parameters.h>using namespace std;__global__ void vec_add(int *a, int *b)
{int i = blockIdx.x;a[i] += b[i];
}int main()
{const int N = 100;// ---- allocate the memory ---- //int *a, *b;cudaMallocManaged(&a, N*sizeof(int));cudaMallocManaged(&b, N*sizeof(int));// ---- initialize a,b ---- //for(int i=0;i<N;i++){a[i] = i;b[i] = i;}// ---- add b to a ---- //vec_add<<<N,1>>>(a,b);cudaDeviceSynchronize();// ---- display a ---- //for(int i=0;i<N;i++){cout << a[i] << endl;}
}

http://www.ppmy.cn/server/131266.html

相关文章

Django makemigrations时出现TypeError: ‘module‘ object is not iterable

使用Python 3.11、Django 5.1.2 写完model进行makemigrations时出现报错 报错的最下面提到了我自己创建的一个应用里的urls.py&#xff0c;尝试着给里面加上一个列表 然后问题解决了。。。 不知道为什么 makemigrations的时候会去检查urls。。。

图书馆自习室座位预约管理微信小程序+ssm(lw+演示+源码+运行)

摘 要 随着电子商务快速发展世界各地区,各个高校对图书馆也起来越重视.图书馆代表着一间学校或者地区的文化标志&#xff0c;因为图书馆丰富的图书资源能够带给我们重要的信息资源&#xff0c;图书馆管理系统是学校管理机制重要的一环&#xff0c;,面对这一世界性的新动向和新…

获取鸿蒙设备Udid遇到的问题

参考官方文档&#xff1a;注册调试设备-调试应用&#xff08;HarmonyOS&#xff09;-AppGallery Connect帮助中心 - 华为HarmonyOS开发者 (huawei.com) 坑一&#xff1a;The sdk hdc.exe version is too low, please upgrade to the latest version. 升级dev工具和sdk配置为api…

java脚手架系列4--测试用例、拦截器

异常处理、拦截器、数据库连接 1 测试用例 单元测试是一个老生常谈的问题&#xff0c;无论是后端对自己的代码质量把的第一道关也好&#xff0c;也是对测试减缓压力。这里就不过多讲述测试用例的重要性&#xff0c;但是有2个框架我们必须了解一下。 1.1 JUnit和mockito 我们…

【汇编语言】寄存器(CPU工作原理)(七)—— 查看CPU和内存,用机器指令和汇编指令编程

文章目录 前言1. 预备知识&#xff1a;Debug的使用1.1 什么是Debug&#xff1f;1.2 我们用到的Debug功能1.3 进入Debug1.3.1 对于16位或者32位机器的进入方式1.3.2 对于64位机器的进入方式 1.4 R命令1.5 D命令1.6 E命令1.7 U命令1.8 T命令1.9 A命令 2. 总结3. 实操练习结语 前言…

入门端到端第一步!最新综述回顾基于深度学习的规划方法发展历程

这篇新的综述,系统的回顾了基于深度学习的预测和规划方法, 端到端方法的发展历程, 非常适合初学者了解领域背景. The Integration of Prediction and Planning in Deep Learning Automated Driving Systems: A Review 0. 摘要 自动化驾驶系统有潜力彻底改变个人、公共和货物…

C++ 比大小

//输入两个可能有前导 0 的大整数&#xff0c;a,b请输出他们谁大谁小#include <iostream> #include <string> #include <string.h> using namespace std; #define M 100005 int main() {char a[M], b[M];char *pa, *pb;pa a;pb b;cin >> a >> …

maven加载依赖成功但是引入import不了包,注解报错

突然就复现不出来了&#xff0c;奇了怪了&#xff0c;简单说一下吧&#xff0c;就是模块里引入了SpringBoot Test那个依赖然后&#xff0c; 这个地方是显示引入成功的&#xff0c;但是 这个包下没有&#xff0c;导致我SpringBootTest一直出不来&#xff0c;就找不到这个包下的注…