张小白手把手教你写CUDA的HelloWorld

举报
张辉 发表于 2022/06/30 21:08:28 2022/06/30
【摘要】 CUDA

张小白手把手教你写CUDA的HelloWorld

在Windows下的CUDA程序运行起来需要装Visual Studio一堆东西。但是Windows 11有个WSL还是蛮好用的。我们用这个方法来试试运行CUDA代码吧!

在Windows 11下搜索 Microsoft Store:

在Store中搜索ubuntu 20.04:

点击获取:

耐心等待下载完毕:

下载完毕后:

点击打开:

输入用户名:zhanghui

输入两次密码:z******i

就进入了ubuntu 20.04的环境。

使用nvidia-smi可以看到Nvidia的显卡信息:

打开nvcc直接报错:

我们可以按照提示按照nvidia的cuda toolkit。

但是他不一定听你的话。

那我们还是去nvidia官网去下载CUDA toolkit吧!

打开:

developer.nvidia.com/cu

下面会显示具体的下载和安装命令,照此执行:

wget developer.download.nvidia.com

chmod +x *.run

sudo ./cuda_11.7.0_515.43.04_linux.run

告诉你gcc校验版本出错。

那就安装gcc吧:

sudo apt install gcc

报错了:

这个时候应该先做下sudo apt-get update:

再安装就可以了:

gcc --version

再来试一遍安装cuda toolkit:

sudo ./cuda_11.7.0_515.43.04_linux.run

会弹出以下界面:

输入accept,继续:

当然这个时候张小白发现一个问题,就是wsl所在的C盘空间所剩不多了。

那就使用迁移大法,把刚才安装的wsl ubuntu 20.04移到其他硬盘吧:(E盘还有500G空间)

使用管理员打开 PowerShell:

下载move-wsl工具:

git clone github.com/pxlrbt/move-

停止wsl运行:

wsl --shutdown

确认ubuntu的窗口已被关闭。

cd move-wsl

执行:.\move-wsl.ps1

按提示完成 wsl源的选择,并输入目的目录 e:\wsl2,耐心等待后会发现移动成功。

此时看一下C盘和E盘的剩余空间情况:

文件也移过来了:

那我们重新打开wsl的ubuntu 20.04

居然是root用户。

切换到zhanghui用户,重新执行cuda toolkit安装:

sudo ./cuda_11.7.0_515.43.04_linux.run

输入accept后:

点击install:

按照上面的提示修改 .bashrc,增加下面两个环境变量:

export PATH=$PATH:/usr/local/cuda-11.7/bin

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.7/lib64

source ~/.bashrc使其生效:

检查nvcc是否正常安装:

nvcc -V

编辑一个helloworld.cu的CUDA代码:

#include <stdio.h>

__global__ void hello_from_gpu()
{
        printf("Hello World from the GPU!\n");
}

int main(void)
{
        hello_from_gpu<<<1, 1>>>();
        cudaDeviceSynchronize();
        return 0;
}

保存后编译

nvcc -o helloworld helloworld.cu

看来还是要装g++

sudo apt-get install g++

重新编译:

nvcc -o helloworld helloworld.cu

编译是通过了,但是没有结果。。。LOL。。。


那么,是不是CUDA 11.7的版本太新了,跟驱动不匹配呢?

我们换下载 CUDA 11.4的版本试试:

打开 CUDA Toolkit 11.4 Update 4 Downloads

按如下方式选择:

wget developer.download.nvidia.com

chmod +x *.run


sudo sh cuda_11.4.4_470.82.01_linux.run

accept后会提示:

继续会提示:

因为刚才已经装过CUDA 11.7了。

装完了。到/usr/local下看看:

可见,/usr/local/cuda的软链接指向了 /usr/local/cuda-11.4,而原来指向的是 /usr/local/cuda-11.7.

这样我们将 .bashrc简单地调整为指向 /usr/local/cuda,这样不管是哪个版本都会指向应该指向的实际目录:

source ~/.bashrc使其生效

nvcc -V看看版本:

nvidia-smi看看版本:

然后再重新编译:

rm helloworld

nvcc -o helloworld helloworld.cu

并执行:

./helloworld

终于完成了WSL的ubuntu 20.04上第一个CUDA的hello world程序。

(全文完,谢谢阅读)

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。