如何在WSL2中安装可执行编译.cu文件的cuda环境
参考nvidia官方文档:
https://docs.nvidia.com/cuda/wsl-user-guide/index.html#installing-insider-preview-builds
=========================================
第一步:
sudo apt-key del 7fa2af80
第二步:
sudo apt install nvidia-cuda-toolkit
注意:
本文方法是唯一成功的方法,如果采用和物理机ubuntu一样的在nvidia官网下载cuda版本,然后手动安装,那么在编译好.cu文件后运行则会报错,报错信息为无法检测到显卡/显卡驱动。
测试代码:
x.cu
#include <stdio.h> #include <stdlib.h> #include <cuda_runtime.h> //初始化CUDA int count=0; bool InitCUDA() { printf("Start to detecte devices.........\n");//显示检测到的设备数 cudaGetDeviceCount(&count);//检测计算能力大于等于1.0 的设备数 if(count == 0) { fprintf(stderr, "There is no device.\n"); return false; } printf("%d device/s detected.\n",count);//显示检测到的设备数 int i; for(i = 0; i < count; i++) {//依次验证检测到的设备是否支持CUDA cudaDeviceProp prop; if(cudaGetDeviceProperties(&prop, i) == cudaSuccess) {//获得设备属性并验证是否正确 if(prop.major >= 1)//验证主计算能力,即计算能力的第一位数是否大于1 { printf("Device %d: %s supportsCUDA %d.%d.\n",i+1,prop.name,prop.major,prop.minor);//显示检测到的设备支持的CUDA 版本 break; } } } if(i == count) {//没有支持CUDA1.x 的设备 fprintf(stderr, "There is no device supporting CUDA 1.x.\n"); return false; } cudaSetDevice(i);//设置设备为主叫线程的当前设备 return true; } int main() { if(!InitCUDA()) {//初始化失败返回系统int argc, char** argv return 0; } printf("Hello GPU! CUDA has been initialized.\n"); //exit(argc ? EXIT_SUCCESS : EXIT_FAILURE); return 0;//返回系统 }
y.cu
#include <iostream> #include <math.h> #include <cuda_runtime.h> using namespace std; int main() { int count = 0; cudaGetDeviceCount(&count); cout <<"当前计算机包含GPU数为"<< count << endl; cudaError_t err = cudaGetDeviceCount(&count); if (err != cudaSuccess) printf("%s\n", cudaGetErrorString(err)); cudaDeviceProp prop; cudaGetDeviceProperties(&prop, 0); printf("Device Number: %d\n", 0); cout << "当前设备名字为" << prop.name << endl; cout << "GPU全局内存总量为" << prop.totalGlobalMem << endl; cout << "单个线程块中包含的线程数最多为" << prop.maxThreadsPerBlock << endl; }
效果:
=========================================
本博客是博主个人学习时的一些记录,不保证是为原创,个别文章加入了转载的源地址,还有个别文章是汇总网上多份资料所成,在这之中也必有疏漏未加标注处,如有侵权请与博主联系。
如果未特殊标注则为原创,遵循 CC 4.0 BY-SA 版权协议。
posted on 2023-04-10 16:44 Angry_Panda 阅读(141) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
2022-04-10 baselines库中atari_wrappers.py中的环境包装器的顺序问题
2022-04-10 baselines中环境包装器EpisodicLifeEnv的分析
2022-04-10 baselines库中cmd_util.py模块对atari游戏的包装为什么要分成两部分并在中间加入flatten操作呢?
2019-04-10 【转载】 强化学习(十一) Prioritized Replay DQN