在安装了Ubuntu的虚拟机中开发CUDA程序是否可行?

12

我看到一个视频,一个人在虚拟机中编译了他的cuda程序。有人可以告诉我如何做吗?

请在视频的01:09:00处查看他是如何在virgualbox中编译程序的。

附注: 我有一张GTX 970显卡和另一张显卡安装在我的工作站上,但我不想在它上面安装真正的Ubuntu,我只想使用虚拟机来测试cuda世界。


3
是的,可以在已安装 CUDA 的虚拟机中运行 CUDA 编译器(nvcc)。如果您正在寻找提供逐步教程的人,我认为您在这里可能无法得到。话虽如此,由于我所知道的没有一种明确定义的方法将物理 GPU 设备插入虚拟机实例,因此您可能无法在虚拟机中运行任何 CUDA 代码。不过,我的说法可能是错误的。 - Robert Crovella
谢谢,不过我自己也不会相信,但是我在电影里看到他做了,所以很好奇。 - user5090433
3
哦,当你说虚拟盒子时,我以为你实际上是指 VirtualBox 产品。视频中的演示者正在使用 Amazon EC2 云 GPU 实例,这当然是可能的。 - Robert Crovella
2个回答

12

是的,这是可能的。

视频中的演示者正在使用Amazon EC2云GPU实例。

一般来说,许多类型的VM(虚拟机)提供可以托管Linux操作系统,在其上可以加载CUDA工具包并编译代码。

然而,编译代码和运行CUDA代码之间存在差异。运行CUDA代码通常需要有一个CUDA GPU可用/存在。这可以使用某些类型的VM / hypervisor完成,但并不是每个VM hypervisor都支持将物理GPU设备放置在VM中的能力(目前需要这样才能在VM中运行CUDA代码)。

一般来说,要在VM中提供适用于CUDA使用的GPU(目前),必须使VM / hypervisor支持某种PCI Passthrough功能。

提供一个完整的分步教程将取决于特定hypervisor的选择,并超出了我可以在此处提供的答案范围。


4
或许您可以写一个通用的教程,例如Virtualbox + Ubuntu + 中档Nvidia显卡。 - zindarod
罗伯特,考虑到你的建议,我只在我的虚拟机上安装了cuda驱动程序(没有安装nvidia gpu驱动程序)。但这仍然无法正常工作——至少我的虚拟机不再显示启动画面。有什么建议吗? - Aaron B.
你确定PCI透传对于CUDA来说足够吗? - inf3rno
1
这还不够,但在一般情况下是必要的。某些NVIDIA GPU已启用此类用途,但许多GPU未启用,我无法提供详尽的列表或回答有关该GPU或那个GPU的具体问题。 NVIDIA GPU驱动程序可能会拒绝在PCI直通场景中正确工作,这将取决于使用的特定GPU和其他因素。 - Robert Crovella

2
在运行Ubuntu 18.04的VirtualBox虚拟机中,我使用以下命令安装了NVIDIA CUDA编译器和dev头文件:
sudo apt-get install nvidia-cuda-toolkit nvidia-cuda-dev libcupti-dev

这让我得到:
> nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Nov__3_21:07:56_CDT_2017
Cuda compilation tools, release 9.1, V9.1.85

1
假设Linux虚拟机正在Windows主机上运行。我需要为Windows安装CUDA吗?还是上述步骤可以让我编译和运行? - kfmfe04

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接