2010-02-14 2 views
20

Я написал программу cuda, и я тестирую ее на ubuntu как виртуальную машину. причина в том, что у меня есть окна 7, я не хочу устанавливать ubuntu в качестве вторичной операционной системы, и мне нужно использовать операционную систему linux для тестирования. мой вопрос: будет ли виртуальная машина ограничивать ресурсы gpu? Так будет ли мой код cuda быстрее, если я запустил его под своей основной операционной системой, чем запуск на виртуальной машине?Программа cuda на VMware

+1

Я думаю, вам повезет, если он вообще будет работать под VM. Вы можете сделать разработку CUDA в Windows 7. Если по какой-то причине это проблема, если вы используете разработку, а не в производственной среде, почему бы не использовать функцию эмуляции? – dangerstat

+0

Мне нужны точные результаты скорости моего алгоритма cuda. он уже работает под VM, но я не уверен, использую ли я полные ресурсы gpu (из-за VM). – scatman

+0

В виртуальной машине он должен работать в режиме эмуляции, запускать deviceQuery (из SDK) или вызывать cudaGetDeviceProperties для проверки. – Tom

ответ

19

К сожалению, виртуальная машина имитирует графическое устройство и, следовательно, у вас не будет доступа к реальному графическому процессору. Это связано с тем, как виртуализация обрабатывает несколько виртуальных машин, обращаясь к одному и тому же устройству, - это обеспечивает промежуток между ними для совместного использования реального устройства.

Можно получить правдивый доступ к оборудованию, но только если у вас есть правильная комбинация программного и аппаратного обеспечения, см. SLI Multi-OS site.

Таким образом, вы, вероятно, не повезло с маршрутом виртуализации - если вы действительно не можете запустить приложение в Windows, то вы ограничены следующим:

  1. Нереалистичные: Установка Linux вместо
  2. Нереальные: Установка Linux вместе (не вариант)
  3. загрузки с Live CD, можно подготовить образ диска с помощью CUDA и смонтировать образ каждый раз
  4. Setup (или умолять/заем) отдельную коробку с Linux и доступ к нему удаленно
2

На CUDA 3.1 это возможность виртуализации, не яркие, поэтому единственный годный к употреблению подход для запуска программ CUDA непосредственно на цели HW + SW

10

Я только что услышал разговор на технологию GPU конференции NVIDIA, исследователь названный Xiaohui Cui (Национальная лаборатория Ок-Ридж). Помимо прочего, он описал доступ к графическим процессорам с виртуальных машин, используя что-то, называемое gVirtuS. Он не создал gVirtuS, но описал его как драйвер с открытым исходным кодом «virtual cuda». См. Следующую ссылку: http://osl.uniparthenope.it/projects/gvirtus/

Я не пробовал gVirtuS, но похоже, что он может делать то, что вы хотите.

17

Я столкнулся с аналогичной задачей один раз. То, что я закончил, это установка Ubuntu на накопитель на 8 ГБ с постоянным режимом.

Это дало мне 4 ГБ для установки CUDA и всего остального, что мне нужно.

Наличие загрузочного USB-накопителя вокруг может быть очень полезным. Рекомендую прочитать this.

Кроме того, this link имеет очень интересный материал, если вы ищете другие дистрибутивы.

2

Используйте rCUDA, чтобы добавить виртуальный графический процессор к своей виртуальной машине.

+2

По состоянию на 30 ноября 2012 года текущий стабильный выпуск (v3.2), а также бета-версия новые дистрибутивы Windows и Linux rCUDA 4 не совместимы. Кроме того, 32- и 64-разрядные версии еще не совместимы. Это означает, что виртуальная машина Linux, работающая на хосте Windows, не может использовать rCUDA. – SmileAndNod

+0

rCUDA, похоже, не с открытым исходным кодом (на веб-сайте есть форма запроса программного обеспечения) и, похоже, не поддерживает все linux, такие как arch linux. – simonzack