在编写 CUDA 程序时遇到这么一个问题

虚拟机是模拟一个图形设备,这样的话你没有机会接触到真正的 GPU 。这是由于当有多个虚拟机访问同一个设备时虚拟机处理的方式决定的,虚拟机在其中提供了一个中间层来共享真正的硬件设备。

本机显卡 RTX3080 ,在Win10工作站版的 Hyper-v上运行虚拟机 Ubuntu20.04 LTS,经测试是通不了GPU的。

有人提出:Windows上支持虚拟机里使用Cuda的应该只有Hyper-V,但是条件苛刻:

1- 需要使用Windows Server 2016;

2- CPU需要支持SLAT,还有VT-D或者I/OMMU;

3- 企业版GPU,GeForce不行。

目前最新消息是wsl支持Cuda:

技术文档:https://docs.nvidia.com/cuda/wsl-user-guide/index.html

技术博客:https://developer.nvidia.com/blog/announcing-cuda-on-windows-subsystem-for-linux-2/

技术论坛:https://forums.developer.nvidia.com/c/accelerated-computing/cuda/cuda-on-windows-subsystem-for-linux/303

下一次我将根据自己实践,具体讲一下如何安装部署。

1、升级windows10系统到内核20145+

2、升级wsl2,具体见https://aka.ms/wsl2kernel

3、cmd输入:wsl --set-default-version 2,切换到wsl2

4、进入MIcrosoft store 安装ubuntu

5、cmd输入ubuntu即可启动,ubuntu界面下升级:sudo apt update,sudo apt upgrade

6、查看内核版本:uname -r,必须4.19.121+

7、安装cuda-toolkit,选择WSL-Ubuntu,需要注意,安装时选择不安装 CUDA 驱动。详见:https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=WSL-Ubuntu&target_version=2.0&target_type=runfile_local

deb方式可以用阿里云加速:

wget https://mirrors.aliyun.com/nvidia-cuda/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
sudo apt-key adv --fetch-keys https://mirrors.aliyun.com/nvidia-cuda/ubuntu2004/x86_64/7fa2af80.pub
sudo add-apt-repository "deb https://mirrors.aliyun.com/nvidia-cuda/ubuntu2004/x86_64/ /"
sudo apt-get update
sudo apt-get -y install cuda-11-3

安装注意:deb方式,我这里老是有问题,换DNS也不行,翻墙也不行,提示:

Err:11 https://developer.download.nvidia.cn/compute/cuda/repos/ubuntu2004/x86_64  Packages
  404  Not Found [IP: 124.132.138.66 443]
Fetched 216 kB in 4s (57.3 kB/s)
Reading package lists... Done
N: Ignoring file 'cuda-ubuntu2004.pin' in directory '/etc/apt/sources.list.d/' as it has an invalid filename extension
E: Failed to fetch https://developer.download.nvidia.cn/compute/cuda/repos/ubuntu2004/x86_64/by-hash/SHA256/ce4d38aa740e318d2eae04cba08f1322017d162183c8f61f84391bf88020a534  404  Not Found [IP: 124.132.138.66 443]
E: Some index files failed to download. They have been ignored, or old ones used instead.

我选择是runfile[local]方式,遇到“ Failed to verify gcc version. See log at /var/log/cuda-installer.log for details.”,后面加参数如下:

wget https://developer.download.nvidia.com/compute/cuda/11.3.1/local_installers/cuda_11.3.1_465.19.01_linux.run

sudo sh cuda_11.3.1_465.19.01_linux.run --override

设置环境变量:

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

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

export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-11.3

source ~/.bashrc

测试:

cd /usr/local/cuda-11.3/samples/1_Utilities/deviceQuery

./BlackScholes

效果:

./deviceQuery Starting...

CUDA Device Query (Runtime API) version (CUDART static linking)

Detected 1 CUDA Capable device(s)

Device 0: "NVIDIA GeForce RTX 3080"
  CUDA Driver Version / Runtime Version          11.4 / 11.3
  CUDA Capability Major/Minor version number:    8.6
  Total amount of global memory:                 10240 MBytes (10737418240 bytes)
  (068) Multiprocessors, (128) CUDA Cores/MP:    8704 CUDA Cores
  GPU Max Clock rate:                            1710 MHz (1.71 GHz)
  Memory Clock rate:                             9501 Mhz
  Memory Bus Width:                              320-bit
  L2 Cache Size:                                 5242880 bytes
  Maximum Texture Dimension Size (x,y,z)         1D=(131072), 2D=(131072, 65536), 3D=(16384, 16384, 16384)
  Maximum Layered 1D Texture Size, (num) layers  1D=(32768), 2048 layers
  Maximum Layered 2D Texture Size, (num) layers  2D=(32768, 32768), 2048 layers
  Total amount of constant memory:               65536 bytes
  Total amount of shared memory per block:       49152 bytes
  Total shared memory per multiprocessor:        102400 bytes
  Total number of registers available per block: 65536
  Warp size:                                     32
  Maximum number of threads per multiprocessor:  1536
  Maximum number of threads per block:           1024
  Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
  Max dimension size of a grid size    (x,y,z): (2147483647, 65535, 65535)
  Maximum memory pitch:                          2147483647 bytes
  Texture alignment:                             512 bytes
  Concurrent copy and kernel execution:          Yes with 1 copy engine(s)
  Run time limit on kernels:                     Yes
  Integrated GPU sharing Host Memory:            No
  Support host page-locked memory mapping:       Yes
  Alignment requirement for Surfaces:            Yes
  Device has ECC support:                        Disabled
  Device supports Unified Addressing (UVA):      Yes
  Device supports Managed Memory:                Yes
  Device supports Compute Preemption:            Yes
  Supports Cooperative Kernel Launch:            Yes
  Supports MultiDevice Co-op Kernel Launch:      No
  Device PCI Domain ID / Bus ID / location ID:   0 / 1 / 0
  Compute Mode:
     < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 11.4, CUDA Runtime Version = 11.3, NumDevs = 1
Result = PASS

cuDNN安装:

https://developer.nvidia.com/rdp/cudnn-download,下载对应版本

tar -xzvf cudnn-11.3-linux-x64-v8.2.1.32.tgz

sudo cp cuda/include/cudnn.h /usr/local/cuda-11.3/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-11.3/lib64
sudo chmod a+r /usr/local/cuda-11.3/include/cudnn.h /usr/local/cuda-11.3/lib64/libcudnn*

验证,通过tensorflow来验证:

import tensorflow as tf

gpu_device_name = tf.test.gpu_device_name()

print(gpu_device_name)

卸载:

/usr/local/cuda-11.3/bin/cuda-uninstaller

喜大普奔——WIN10 虚拟机上可以跑NVIDIA CUDA,Hyper-v或是WSL?相关推荐

  1. 在虚拟机上跑vxworks的总结

    我的虚拟机环境:VMware® Workstation,7.1.4 build-385536 Tornado2.2.1,即vxworks5.5.1版本 其中文章中用到的文件下载处:http://dow ...

  2. 十分钟学会win10系统封装之系列教程(一):在VMware Workstation虚拟机上安装win10母盘系统

    关于系统封装这个话题,历来就一直受到很多小伙伴的青睐,很多同学都认为会封装系统是一件很高大上的事情,所以一直都有很多小伙伴向亦是美网络小编询问到底什么时候能出一些关于win10系统封装的教程,其实小编 ...

  3. VMware 15上新建虚拟机以及虚拟机上安装Win10系统的安装步骤(附图解)

    文章目录 VMware 15上新建虚拟机以及虚拟机上安装Win10系统的安装步骤(附图解) ①首先打开VMware15,点击创建新的虚拟机: ② 进入新建虚拟机向导,选择自定义(高级),点击下一步: ...

  4. win10系统下安装Linux虚拟机以及在虚拟机上安装Ubuntu

    一.前期准备工作 1.成功安装完成VMware软件: 链接:https://pan.baidu.com/s/1gWinLJpfWdAQ8AyEkZxpfg 密码:i2ap 2.下载Ubuntu 镜像文 ...

  5. win10 子系统 ubuntu GPU驱动,CUDA, CUDNN安装与 win10 GPU 机器学习性能对比, numa_node 问题

    这里写自定义目录标题 win10 子系统 ubuntu GPU 安装 与 win10 GPU 机器学习性能对比 win10 子系统 ubuntu GPU驱动,CUDA, CUDNN安装 win10 端 ...

  6. Win10搭建GPU版Darknet——VS2019+CUDA+CUDNN篇

    一.理论知识简介 为了更好的理解gpu必要性,参考了一位博主的介绍,并对主要内容进行总结如下(如有要详细了解原理的,文末放置原博主链接): 1.1 CPU与GPU的区别 CPU和GPU不同之处在于其设 ...

  7. 【Linux】在虚拟机上安装CentOS7

    在配置好的机子上,可以装个双系统,但是在我自己的本子上,磁盘读写太垃圾了,连压缩卷 都执行不了,分不出空间,装不了CentOS系统,没办法,采用虚拟机的方式,把它转起来. -------------- ...

  8. hadoop8088端口查看历史打不开,但是在虚拟机上可以打开的解决办法

    hadoop8088端口查看历史打不开,但是在虚拟机上可以打开的解决办法 问题截图 解决办法:修改hosts文件 Win10系统hosts文件 步骤 效果 问题截图 解决办法:修改hosts文件 Wi ...

  9. linux vmware 服务,学习笔记:在Linux虚拟机上搭建node服务

    最近在研究虚拟机,有一些服务因为编译环境或者系统原因,可能无法在自己的电脑上运行,使用虚拟机可以很好的解决这个问题.虚拟机是通过软件模拟的.具有完整硬件系统功能的.运行在一个完全隔离环境中的完整计算机 ...

最新文章

  1. 【小结】除了网络搜索(NAS),AutoML对深度学习模型优化还有哪些贡献?
  2. DropDownList设置选定项,设置选择项,最安全的方法
  3. Maven的单元测试没有执行的问题
  4. [转]Global exception handling in Web API 2.1 and NLog
  5. MySQL的binlog
  6. 图像优化算法(HE、AHE、CLAHE)简单介绍
  7. 项目疑难杂症记录(四):Activity被重新创建的原因分析
  8. 定期存款转消费卡项目需求书
  9. 疫情肆虐之下,阿里巴巴的攻与防!
  10. 物联网核心安全系列——智能汽车安全防护的重要性
  11. C++教程:C++工程构建常用工具有哪些?
  12. DEMATEL算法程序
  13. MapGuide Windows编译
  14. labview的初步
  15. 东南大学计算机考研代码,东南大学代码_东南大学专业代码_2021东南大学招生代码,报考代码...
  16. asp 服务器文件重命名,aspupload文件重命名及上传进度条的解决方法附代码
  17. win10计算机的数字小键盘,Win10开机默认开启数字小键盘的方法
  18. 6950有史以来最经典玩机宝典/软件包/导航
  19. PyQt5 第一章 PyQt5简介和安装
  20. mysql数据库哪些情况不适合使用索引

热门文章

  1. CCF CSP 201709-1 打酱油 经验总结
  2. SW2016提示cosworks.dll无法装入。
  3. 在名为商品库的数据库中包含有商品规格表Content和商品特性表Property
  4. fastq质量值_FASTQ格式解释和质量评估
  5. 小米手环4自定义太空人表盘
  6. 【Java-Set转List】
  7. 计算机速录比赛主题,弘扬汉字,全国输入法表演赛电脑输入法比赛组速录表演组的报名...
  8. FreeRTOS堆栈溢出检查
  9. 我的世界设置java路径_我的世界java路径设置方法
  10. java 动态导出excel表单 无模板本地生成