太长不看版:使用visual studio
1.无聊闲话
最近在学习CUDA并行计算,虽然资料看了不少,但一直没有实际写过代码跑一跑,所以想搭建一个环境。
CUDA程序不同于其他程序,比如java,pytho,c++甚至有线上网页可以让我们写个hello world玩一玩,或者是codespace这种云空间,虽然谷歌的colab可以调用GPU,但似乎只能跑Pytorch。
好在我大学时的古董游戏笔记本还有个独显,跟着网上成功安装了NVIDIA驱动。
尝试使用nvcc编译运行,但是window的WSL是如下结果:
Command 'nvcc' not found, but can be installed with:
sudo apt install nvidia-cuda-toolkit
powershell是如下结果 :
nvcc fatal : Cannot find compiler 'cl.exe' in PATH
虽然上述问题可能都有解决方案,但我实在是懒得折腾,后来我看教程忽然发现最便捷的CUDA开发环境就是visual studio,而且这一点居然很少有人提——可能是我这样的小白实在是太罕见了,大佬都想不到这居然也算一个问题。
2.环境配置
在visual studio中创建新项目,选择下图所示的CUDA模版(这个选项在我这里最下面,不太好找可以搜索,如果确实找不到,可能是安装visual studio时候没有勾选某些选项)
期望你足够幸运一路点击来到下一页面,这是一个使用GPU进行加法运算的程序模版,我们就不用担心第一次运行失败搞不清是环境问题还是自己的代码问题。
点击下图小三角运行
好了,可以放弃了(bushi)
好吧,我也不知道发生了什么,重启了电脑就解决了,继续上一步直接运行:
addKernel launch failed: no kernel image is available for execution on the device
addWithCuda failed!
好,可以彻底放弃了(不是)。百度发现是显卡计算能力设置有误,毕竟我的是要被历史淘汰的老显卡了,查询自己显卡计算能力可以看:
WIN10下查看CUDA版本 & 显卡计算能力_查看电脑cuda的数量有几个-CSDN博客文章浏览阅读1.4w次,点赞16次,收藏20次。WIN10下查看CUDA版本 & 显卡计算能力一、查看显卡支持的NVCUDA版本号二、查看自己显卡计算能力一、查看显卡支持的NVCUDA版本号1.在 开始菜单 或 右击桌面 打开 NVDIA控制面板2.点击 系统信息3.在弹出的 系统信息对话框 , 点击 组件在 3D设置 中第三项为 NVCUDA版本号二、查看自己显卡计算能力如果你的电脑硬件中安装了NVDIA显卡,则可以在NVIAD官网查到自己显卡的计算能力注:由于N卡分类较多,以及每类下有很多不同型号显卡_查看电脑cuda的数量有几个https://blog.csdn.net/boniu2019/article/details/106437676左上角项目→项目属性(最下面)→CUDA→Device→code generation:我修改成了compute_50,sm_50
修改之后就可以运行了
恭喜我用强大的显卡完成了一组划时代的向量加法运算。
3. hello world
再来个hello world吧。
#include "cuda_runtime.h"
#include "device_launch_parameters.h"
#include<stdio.h>
__global__ void helloFromGPU() {
printf("hello world, this is Nvidia GPU %d\n",blockDim.x, threadIdx.x);
}
int main() {
printf("hello, this is Intel CPU\n");
for (int i = 0; i < 1000; i++) {
helloFromGPU << <1, 1000 >> > ();
};
cudaDeviceReset();
return 0;
}
最后,推荐CUDA编程视频教程(虽然是照着官方手册讲的):