参考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; }

效果:

=========================================

 

如何在WSL2中安装可执行编译.cu文件的cuda环境的更多相关文章

  1. 如何在ubuntu中安装php

    如何在ubuntu中安装php 情衅 | 浏览 692 次 发布于2016-05-07 12:36   最佳答案   关于Ubuntu下的LAMP配置步骤: 首先要安装LAMP 就是Apache,PH ...

  2. 如何在eclipse中安装Jess

    如何在eclipse中安装Jess 浏览:49 | 更新:2014-05-12 16:39 这个文章帮了不少忙,感谢! 但经我实践,还要把插件那些文件向/dropins/sdk下也放一份,才能成功. ...

  3. 如何在ubuntu中安装中文输入法?

    如何在ubuntu中安装中文输入法  在桌面右上角设置图标中找到“System Setting”,双击打开. 在打开的窗口里找到“Language Support”,双击打开.  可能打开会说没有安装 ...

  4. 如何在Ubuntu中安装中文输入法

    在使用ubuntu系统时,有的时候总觉得英文输入法不方便操作,总希望能有中文输入法可以辅助操作,那怎样才能在ubuntu中安装中文输入法呢?下面有一种简单的方法可以安装中文输入法. 如何在ubuntu ...

  5. 如何在VMware中安装Linux系统

    这篇文章主要讲述如何在VMware12中安装RHEL6.9Linux操作系统 步骤一: 打开VMware软件,在主页中点击创建新的虚拟机或者点击左上角文件,在列表中点击新建虚拟机,如图: 步骤二: 点 ...

  6. 如何在Oracle中一次执行多条sql语句 (.net C#)

    关键是不能换行,要加上begin ...sql... end;     每个SQL用:隔开,end后面必须加: 以下是拷贝于:http://www.cnblogs.com/teamleader/arc ...

  7. 如何在VPC中安装Ubuntu

    在虚拟机 VPC2007 中安装Ubuntu 方法A:(断网络连接) 1.用载入ISO镜像启动一台标准的 xp设置的虚拟机 2.按 F4 选择启动模式,选择图形模式并确认. 3.按 F6 在启动配置中 ...

  8. 利用nodeJs来安装less以及编译less文件为css文件

    NodeJs 使用nodejs安装less以及编译less文件为css文件 首先下载nodeJs的安装包,按照步骤,安装nodejs. 链接:http://pan.baidu.com/s/1dEsqY ...

  9. 在CentOS7.4中安装jdk的几种方法及配置环境变量

    在CentOS7.4中安装jdk的几种方法及配置环境变量 一.下载jdk jdk下载地址:http://www.oracle.com/technetwork/java/javase/downloads ...

  10. 如何在Elasticsearch中安装中文分词器(IK+pinyin)

    如果直接使用Elasticsearch的朋友在处理中文内容的搜索时,肯定会遇到很尴尬的问题--中文词语被分成了一个一个的汉字,当用Kibana作图的时候,按照term来分组,结果一个汉字被分成了一组. ...

随机推荐

  1. maven常用命令大全(附详细解释)

    1.常用打包命令 mvn clean package -Dmaven.test.skip=true -- 跳过单测打包mvn clean install -Dmaven.test.skip=true ...

  2. Next.js 13 如何使用loading.js

    要在next.js 13中使用loading.js,我们需要先在对应的文件目录下创建loading.js文件 文件结构如下: app test1 loading.tsx page.tsx 如上面的目录 ...

  3. 报错 ERR !npicode ELIFECYCLE dev: wue-cli-service serve

    在系统变量 Path 里面加上:%SystemRoot%\system32,关掉终端,重新启动项目.

  4. Exception:kylin构建cube, Cannot modify mapReduce.queue.name at runtime

    Failed to open new session: java.lang.IllegalArgumentException: Cannot modify tez.queue.name at runt ...

  5. Scrcpy - 开源免费在电脑显示手机画面并控制手机的工具 (投屏/录屏/免Root)

    教程:https://www.iplaysoft.com/scrcpy.html 官方地址:https://github.com/Genymobile/scrcpy

  6. ​Chrome插件:Postman Interceptor 调试的终极利器

    今天给大家介绍一款非常实用的工具--Postman Interceptor. 这个工具可以捕捉任何网站的请求,并将其发送到Postman客户端. 对于经常和API打交道的程序员来说,Postman I ...

  7. CF1864F 题解

    写了一小时结果被卡常了(笑. 考虑新加入一个数什么时候会产生贡献,或者什么时候不会产生贡献. 发现当一个数的位置与他前一次出现时的位置所构成的区间内假若有一个比它小的数那么就不得不对这个数新进行一次操 ...

  8. vulnhub - LAMPSECURITY: CTF5

    vulnhub - LAMPSECURITY: CTF5 信息收集 端口扫描 nmap -sT --min-rate 10000 -p- 192.168.157.164 详细扫描 sudo nmap ...

  9. Blazor Server App Cannot find the fallback endpoint specified by route values

    github官方issues中提到的解决方案,CreateBuilder时指定项目绝对路径可以解决. 1 // 指定项目路径,也可以用Assembly.GetCallingAssembly获取 2 c ...

  10. 使用Nginx在80端口上代理多个.NET CORE网站

    有两个.NET CORE3.1网站部署在CentOS7上(内网IP是192.168.2.32),现在想实现访问http://192.168.2.32时访问A网站,访问http://192.168.2. ...