Я написал программу cuda, и я тестирую ее на ubuntu как виртуальную машину. причина в том, что у меня есть окна 7, я не хочу устанавливать ubuntu в качестве вторичной операционной системы, и мне нужно использовать операционную систему linux для тестирования. мой вопрос: будет ли виртуальная машина ограничивать ресурсы gpu? Так будет ли мой код cuda быстрее, если я запустил его в своей основной операционной системе, чем запускал его на виртуальной машине?
Программа cuda на VMware
Ответ 1
К сожалению, виртуальная машина имитирует графическое устройство, и поэтому у вас не будет доступа к реальному графическому процессору. Это связано с тем, как виртуализация обрабатывает несколько виртуальных машин, обращаясь к одному и тому же устройству, - он обеспечивает слой между ними для совместного использования реального устройства.
Можно получить правдивый доступ к оборудованию, но только если у вас есть правильная комбинация программного и аппаратного обеспечения, см. SLI Multi-OS site для деталей.
Таким образом, вам, вероятно, не повезло с виртуализацией - если вы действительно не можете запустить приложение в Windows, то вы ограничены следующим:
- Нереалистично: вместо этого установите Linux
- Нереалистично: установите Linux рядом (не вариант)
- Загрузите Live CD, вы можете подготовить образ диска с CUDA и монтировать изображение каждый раз
- Установите (или попросите/возьмите) отдельный блок с Linux и получите доступ к нему удаленно.
Ответ 2
Я столкнулся с аналогичной задачей один раз. То, что я закончил, это установка Ubuntu на накопитель на 8 ГБ с постоянным режимом.
Это дало мне 4 ГБ для установки CUDA и всего остального, что мне нужно.
Наличие загрузочного USB-накопителя может быть очень полезным. Я рекомендую читать это.
Кроме того, эта ссылка содержит очень интересный материал, если вы ищете другие дистрибутивы.
Ответ 3
Я только что услышал разговор на технологической конференции NVIDIA GPU исследователем Xiaohui Cui (Национальная лаборатория Ок-Ридж). Помимо прочего, он описал доступ к графическим процессорам с виртуальных машин, используя что-то, называемое gVirtuS. Он не создал gVirtuS, но описал его как драйвер с открытым исходным кодом "virtual cuda". См. Следующую ссылку: http://osl.uniparthenope.it/projects/gvirtus/
Я не пробовал gVirtuS, но кажется, что он может делать то, что вы хотите.
Ответ 4
Как и в случае CUDA 3.1, возможности виртуализации не являются яркими, поэтому единственным применимым подходом является запуск программ CUDA непосредственно на целевом HW + SW
Ответ 5
Используйте rCUDA, чтобы добавить виртуальный графический процессор к вашей виртуальной машине.