最简单的方式:如何在wsl2上配置CDUA开发环境

step0:序言

这篇文章可以帮助你以一个最为简单的方式迈出CUDA的第一步,从此一入CUDA深似海,从此头发是路人。

前提:你需要在Windows 11上:

  • 电脑中有nvidia显卡以及驱动,由于wsl cuda不支持maxwell gpu架构,所以需要10系以上的显卡
  • 安装wsl2,配置ubuntu镜像并确定能够进入。

此处使用:

  • 操作系统镜像为:ubuntu 22.04.3 LTS
  • 安装cuda版本:12.8.1

注意,在wsl上配置cuda与在普通Linux上配置有程序上的不同,务必注意!

step1:前期准备

由于此处使用的ubuntu 22.04.x版本,我们需要做一些前期配置

可以从这个链接中查询cuda 12.8.1和操作系统,内核,gcc,glibc版本的对应关系:https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html

理论上来说其他版本也不一定不支持,但是出于少给自己找麻烦的需求,按照官方教程更新版本

确认操作系统和工具链版本:

lsb_release -a # 确认操作系统版本
gcc -v # 确认gcc版本
cmake --version # 确认cmake版本
ldd --version # 确认glibc版本

安装gcc12.3.0:

sudo apt install gcc-12 g++-12 -y
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 100
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 100
gcc --version # 确认gcc版本

安装cmake(截至本文撰写cmake latest version为3.22.1):

sudo apt install cmake
cmake --version

至此,先期工具链已经配置完成。

step2:安装CUDA toolkit

CUDA toolkit是开发过程中必备的工具链,本阶段我们需要安装并配置。

参考官方教程:

既有的运行用的CUDA和编译开发用的CUDA toolkit完全是两个东西,不要搞混。

严格按照以下代码执行,顺序不要改变:

sudo apt-key del 7fa2af80
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.8.1/local_installers/cuda-repo-wsl-ubuntu-12-8-local_12.8.1-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-12-8-local_12.8.1-1_amd64.deb
sudo cp /var/cuda-repo-wsl-ubuntu-12-8-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-8
sudo apt-get install cuda

step3:尝试编译并运行sample项目

nvidia官方提供了一个sample项目,用于初学者快速上手CUDA:

执行如下代码,从github中clone并构建

git clone https://github.com/NVIDIA/cuda-samples.git
cd cuda-samples/
mkdir build && cd build
export PATH=/usr/local/cuda-12.8/bin/:$PATH
cmake ..

也可以进入某一个具体项目路径下编译并运行,此处以vectorAdd为例:

cd Samples/0_Introduction/vectorAdd
cmake .
make
./vectorAdd

如果一切顺利,你将会看到如下输出:

~/cuda-samples/Samples/0_Introduction/vectorAdd$ ./vectorAdd 
[Vector addition of 50000 elements]
Copy input data from the host memory to the CUDA device
CUDA kernel launch with 196 blocks of 256 threads
Copy output data from the CUDA device to the host memory
Test PASSED
Done

至此,已经完成了所有配置,你应该能够在自己的wsl中自由编译并运行CUDA程序了。

下一期我们开始正式进入CUDA的世界,从CUDA kernel开始,压榨GPU的每一寸性能,在这个过程中你会深切感受到算力的强大。

以上,感谢阅读,如果你认为这篇文章有帮助,关注雪豹喵,关注雪豹谢谢喵。

相关推荐
暴躁的小胡!!!18 分钟前
Linux权限维持之vim python 扩展后门(五)
linux·运维·服务器·网络·安全
亭墨26 分钟前
linux0.11内核源码修仙传第五章——内存初始化(主存与缓存)
linux·c语言·驱动开发·学习·缓存·系统架构
追寻光44 分钟前
Linux 配置静态 IP
linux
誓约酱1 小时前
(每日一题) 力扣 283 移动零
linux·c语言·数据结构·c++·算法·leetcode
快起床啊你1 小时前
【linux网络编程】浏览网页时客户端与服务器之间数据交互的完整过程
linux
北冥有鱼被烹2 小时前
【微知】Centos如何迁移到Anolis系统的失败记录?(yum -y install centos2anolis、centos2anolis.py)
linux·服务器·centos
babytiger2 小时前
windows 平台如何点击网页上的url ,会打开远程桌面连接服务器
linux·运维·服务器·windows
Arbori_262153 小时前
Linux 命令 for循环
linux·运维·服务器
Whappy0013 小时前
第三节:基于Winform框架的串口助手小项目---串口操作《C#编程》
linux·单片机·c#
麻芝汤圆3 小时前
在虚拟机上安装 Hadoop 全攻略
大数据·linux·服务器·hadoop·windows·分布式