虚拟机 安装 CUDA 可行性说明
原文地址:http://blog.csdn.net/nothinglefttosay/article/details/45095125
在编写 CUDA 程序时遇到这么一个问题
由于服务器端的 linux 运行环境,而本机是 win8 ,对在本机上通过 SSH 客户端或者通过 VS 编写 CUDA 程序再上传倒到服务器上调试运行的方式始终不适应,又不想装双系统,因此想通过虚拟机来安装 linux 操作系统然后在虚拟机上来调试 CUDA 程序。
这中间就存在可行性的问题:
虚拟机是模拟一个图形设备,这样的话你没有机会接触到真正的 GPU 。这是由于当有多个虚拟机访问同一个设备时虚拟机处理的方式决定的,虚拟机在其中提供了一个中间层来共享真正的硬件设备。
本机显卡 GTX 850M ,在 virtualbox 4.3.26 上运行虚拟机 CentOS6.5 输入查询:
这里我主机显卡是NVIDIA GeForce GTX 960,用VMware Workstation 12.2 pro 运行Ubuntu 14.04,一样的效果
- $ lspci | grep -i nvidia
没有返回任何结果,可以看到没有 nvidia 显卡,反而如果将 nvidia 替换为 virtual 却可以看到 virtualbox 提供的虚拟的图形设备:
查看硬件信息可以参考博文:Linux 查看系统硬件信息
也可以使用命令glxinfo行:
该命令可参见博文:glxinfo
也可以看到:
OpenGL renderer string: Software Rasterizer
This means that software rendering is used, but all software rendering is done in the client application, so that the X server is free to service requests from other applications.
As you can see, all four combinations of direct/indirect software/hardware rendering are possible. In terms of performance, direct hardware rendering is fastest, followed by (with a noticeable, but not completely horrible performance penalty) indirect hardware rendering. Software rendering is always pretty slow.
还有相关链接:Cuda on a virtual machine
至此,结论是,虚拟机中不能调用物理显卡进行 CUDA 编程。
然而事实没有这么简单,后来发现有人声称在虚拟机中调用到了独显:
cuda program on VMware
贴中,贴主声称自己在 VM 上已经实现了 CUDA 编程,只是担心效率问题。
得票最高的答案中提到:仅当你使用正确的硬件和软件配合的话,才有可能从虚拟机上接触到硬件。
其他相关帖子中也提到同样的问题:
思路广,EXSi 5.x服务器插了一块专业卡,能不能让其中一个虚拟机用上?
Can you Program/Test CUDA in a Virtual Machine?
虚拟机中跑 CUDA 取决于你的硬件,软件环境:
CPU,主板,板卡本身。
1. 其中提到了硬件 CPU 支持 VT-d,注意这里与一般的虚拟化技术 VT 不一样:
2. CPU 支持外,还需要主板支持 VT-d:
The following Intel® Desktop Boards support Intel VT with Directed I/O:
Chipset Desktop Board
X79 DX79SI, DX79SR, DX79TO
H77, Q77, Z77 DH77DF, DH77EB, DH77KC, DQ77CP, DQ77KB, DQ77MK, DZ77BH-55K, DZ77GA-70K, DZ77RE-75K, DZ77SL-50K
B75, Z75 DB75EN, DZ75ML-45K
Q67 DQ67EP, DQ67OW, DQ67SW
H61 DH61AGL
Q57 DQ57TM, DQ57TML
Q45 DQ45CB, DQ45EK
Q35 DQ35JO, DQ35MP
3. 软件环境:VMware DirectPath I/O
GPGPU Computing in a VM
普通的VMWare不行,必须VMware ESXi
其中提到对 nvidia 显卡的要求:
4. (2) Requires a “direct passthrough” capable GPGPU
- Most NVIDIA Quadro cards are passthrough capable
- Recent AMD cards are also passthrough capable
看来一般的 GTX 显卡是不行的,AMD 就忽略吧。。
在这个帖子中也提到了上面的这些方面。
有些人提到可能的解决方法:
1. 通过跑 linux liveCD 来实现,应该是可行的。
2. something called gVirtuS
3. An NVIDIA Multi-OS workstation
An NVIDIA Multi-OS workstation, with dual Quadro GPUs and virtualization software, lets a user assign a dedicated Quadro GPU to both the host operating system and a range of optionally loaded guest operating systems, thus creating a fully virtualized workstation*.
总结:虚拟机中运行 CUDA 需要硬件和软件的配合才能使用,对于一般使用者可能暂时不太可能的。
其他相关链接:
Virtual Machine and CUDA Questions???
虚拟机 安装 CUDA 可行性说明相关推荐
- 虚拟机 安装 CUDA 可行性分析操作
虚拟机 安装 CUDA 可行性说明 2016年07月26日 20:52:06 麦兜ppig 阅读数:4387 原文地址:http://blog.csdn.net/nothinglefttosay/ar ...
- Jetson tk1 安装 CUDA,ROS,OpenCV和kinect2以及刷机以及ssh远程控制
我的jetson tk1的系统是:LTR21.3,ubuntu14.04.本文仅仅是个人总结,亲测成功. 注意:如果你是使用校园网进行安装的话,有很多源是没办法访问的,安装的时候就会出现很多问题,所以 ...
- 【Linux】安装CUDA和cudnn
安装CUDA和cudnn cuda 驱动检查 驱动下载 1.下载驱动文件 2.准备工作 3.安装NVIDIA驱动程序 gcc降级 cuda安装包下载 安装操作 gcc降级 安装cuda **nvidi ...
- WSL2 安装 CUDA(Win11)
WSL2 安装 CUDA(Win11) 1.安装WSL的CUDA驱动 驱动下载地址:https://developer.nvidia.com/cuda/wsl 选好你自己的显卡类型 下载完成后直接默认 ...
- ESXI 6.7 环境 centos7.6 虚拟机安装tesla k80 显卡驱动失败问题解决
ESXI 6.7 环境 16.04虚拟机安装tesla k80 一切正常,但虚拟机重装了centos7.6后,驱动一直安装失败,报错如下: 换了多个驱动版本,问题依然存在.安装时指定 --no-ker ...
- 【详细】Ubuntu18.04安装更新显卡驱动、安装CUDA及cuDNN、CUDA版本切换
CUDA安装官方教程:官方教程 cuDNN安装官方教程:官方教程 在配置Pytorch环境的时候,想着尝试一下新版本的pytorch版本Stable(1.10.1)时,发现这个pytorch版本仅支持 ...
- linux验证cuda安装成功_Ubuntu下安装cuda历程记录
首先推荐两个博主的文章,大多都是参考二位 总结 其实安装命令很容易就能找到,但是自己执行起来却总是行不通.不知道为什么明明按照作者的步骤来的,但是却卡住了 提供以下几个注意的点: 安装cuda首先要做 ...
- Ubuntu18.04安装CUDA、cudnn、pycharm、tensorflow-gpu
前言 虚拟机里的linux系统似乎不能安装nvidia显卡驱动,在虚拟机Ubuntu系统上跑tensorflow只能使用cpu..看来还得去物理机装双系统或者用服务器了 因为,安装nvidia驱动报错 ...
- linux安装cuda需要先安装NVIDIA显卡驱动
CentOS7.3安装NVIDIA-1080ti驱动.cuda.cudnn.TensorFlow - 负赑屃 - 博客园 使用这个教程 学习语音之家付费教程踩坑实录 在虚拟机安装NVIDIA显卡驱动失 ...
最新文章
- 关于Javascript的内存泄漏问题的整理稿
- LeetCode周赛191
- 转载-如何做好项目的需求与业务调研
- 上传文件 connection reset
- [C#.NET 拾遗补漏]14:使用结构体实现共用体
- gprMax 3.1.5 安装以及在pycharm或VScode中运行的方法
- voxelnet_苹果最新机器学习论文:使用VoxelNet进行3D物体检测
- Qt5.x解决报错main.cpp:1:10: fatal error: QApplication: No such file or directory问题
- mybatis对mysql进行分页
- thinkphp创建对象及数据操作
- 关于学习Swift的一些感受
- java基础----java调用oracle存储过程(转)
- jq 获取当时时间的到秒_js(jQuery)获取时间的方法及常用时间类
- OSGI.NET,请求因HTTP状态404 失败:Not Found
- 中国燕麦片市场销售现状与十四五发展趋势分析报告2022年版
- 安卓引用思源黑体字体,出现标点“ ‘ ” 时候会显示成“)”
- h5php大转盘抽奖,html5转盘抽奖 完整代码下载(网页版)
- vite 预编译实现
- iOS16 中的 3 种新字体宽度样式
- 2023年软考考试时间及相关安排