最简单的方式:如何在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是开发过程中必备的工具链,本阶段我们需要安装并配置。
参考官方教程:
- https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=WSL-Ubuntu&target_version=2.0&target_type=deb_local
- https://docs.nvidia.com/cuda/wsl-user-guide/index.html#getting-started-with-cuda-on-wsl
既有的运行用的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的每一寸性能,在这个过程中你会深切感受到算力的强大。
以上,感谢阅读,如果你认为这篇文章有帮助,关注雪豹喵,关注雪豹谢谢喵。
最简单的方式:如何在wsl2上配置CDUA开发环境的更多相关文章
- 关于如何在github上创建团队开发环境
今天想写个如何在github上创建团队开发环境的博客.送给那些还不知道如何在github上创建团队开发环境的开发人员. 1.首先,当然你要有个github的账号.具体怎么注册我这里就不说了.可以上gi ...
- 如何在Windows上搭建Android开发环境
Android开发越来越火,许多小伙伴们纷纷学习Android开发,学习Android开发首要任务是搭建Android开发环境,由于大家 主要实在Windows 上开发Android,下面就详细给大家 ...
- 如何在 macOS 上搭建 PHP 开发环境
如何在 macOS 上搭建 PHP 开发环境 Linux, Nginx, MySQL, PHP $ php --version $ php -v # PHP 7.3.11 (cli) (built: ...
- 如何在Eclipse中配置python开发环境
考虑到网上关于Eclipse中配置Python开发环境的文章千篇一律,故写此文以总结. 本文主要内容是:三种Pydev配置方法和一种PyDev卸载方法. 本文的前提是你已经安装了Eclipse和pyt ...
- 如何在一台新电脑上配置JAVA开发环境
对于JAVA新手来说,刚开始要学JAVA,而自己的电脑上毫无与JAVA开发有关的环境,应该如何进行配置呢? (安卓新手也需要JAVA开发环境) 第一步,下载.安装java JRE JRE (Java ...
- Mac OS 上配置java开发环境
在开始本学期的java课程前,我需要先为自己的电脑配置好Java的开发环境.由于电脑是mac操作系统,所以教材上的教程对我并不管用,于是乎开始动手自己查阅网上资料来解决. 1.安装JDK 1.访问Or ...
- mac 上配置flutter开发环境
(ios,Android,Xcode,Android Studio,VScode,IDEA) 1)安装Flutter SDK 2)iOS 环境配置 3)Android Studio配置 4)VS co ...
- mac上配置php开发环境
玉忠之前在我的mac上配置过,当时项目不能区分大小写,所以就没成功,我现在在他得基础上继续配置,希望成功. 教程:http://my.oschina.net/joanfen/blog/171109 以 ...
- 【最新版】从零开始在 macOS 上配置 Lua 开发环境
脚本语言,你可能更需要的是 Lua 不同的脚本语言有不同的特性,第一接触的脚本语言,可能会影响自己对整个脚本语言的理解和认知.我以前接触最多的脚本语言是 JavaScript.后果就是:我一度以为脚本 ...
- 【LuaJIT版】从零开始在 macOS 上配置 Lua 开发环境
前言 这篇文章针对的是基于 LuaJIT 的环境配置.借助于 LuaJIT,Lua 的执行效率可以进一步提升几十倍.如果你不是很清楚自己是需要 Lua 还是 LuaJIT,那么建议你从 LuaJIT ...
随机推荐
- 【分享】记一次项目迁移(docker java | docker python)
项目:前端Vue3,后端Python+Java,数据库Redis+MySQL 原先部署在centos7里面的,使用的宝塔面板部署的,还算方便. 但是服务器要到期了,要将项目迁移到另外一台服务器. 另外 ...
- springboot连接mysql报错errorCode 0, state 08S01
前言许久未维护的项目需要检查一些数据,重新运行项目发现有create connection SQLException ,具体报错信息是 errorCode 0, state 08S01 . Sprin ...
- Qt编写视频监控系统(移动侦测/遮挡报警/区域入侵/越界侦测/报警输入输出等)
一.前言 得益于标准的onvif协议,各大监控厂商的设备都会支持onvif协议,在onvif协议中就包括了事件订阅机制,通过这个机制,可以拿到各种报警事件,比如移动侦测/遮挡报警/区域入侵/越界侦测/ ...
- OpenWrt安装腾讯云DDNS插件
1.插件介绍 OpenWRT TencentDDNS插件是一款腾讯云研发的,自动映射动态公网IP至用户指定的DNSPod域名解析记录的官方插件. 标题 名称 中文名称 腾讯云DDNS插件 英文名称 l ...
- Many-shot Jailbreaking💘足够长的上下文长度有利于各种越狱?
这篇文章虽然相较于上一篇图的对应有点迷,但是我感到了作者在强化学习与微调还有数学方面的深厚功底,我甚至感觉他的附录可以再发一篇文章了 这阶段的学习打开了我对越狱的思路~ 禁止盗用,侵权必究!!!欢迎大 ...
- [转]Automatic Image Stitching with Accord.NET
原文链接:Automatic Image Stitching with Accord.NET
- 长连接网关技术专题(八):B站基于微服务的API网关从0到1的演进之路
本文由B站微服务技术团队资深开发工程师周佳辉原创分享. 1.引言 如果你在 2015 年就使用 B 站,那么你一定不会忘记那一年 B 站工作日选择性崩溃,周末必然性崩溃的一段时间. 也是那一年 B 站 ...
- Windows环境配置Nginx服务实现负载均衡
系统环境:win10 测试服务:.net6.0+webapi 一.本地创建一个webapi项目 二.新建一个api控制器,里面编写一个测试方法 三.我直接把这一个项目复制了3份,然后修改控制器方法中的 ...
- biancheng-数据结构
目录http://c.biancheng.net/data_structure/ 1数据结构入门2线性表3栈和队列4字符串5数组和广义表6树存储结构7图存储结构8动态内存管理9查找表结构10排序算法1 ...
- SpringCloud(1)---入门篇
SpringCloud理解篇 一.微服务概述 1.什么是微服务 目前的微服务并没有一个统一的标准,一般是以业务来划分将传统的一站式应用,拆分成一个个的服务,彻底去耦合,一个微服务就是单功能业务,只做一 ...