Назад | Перейти на главную страницу

Могу ли я использовать IOMMU для VT-d, чтобы дать каждой виртуальной машине по одному GPU?

Если я использую VMWare с 4 виртуальными машинами и 4 графическими процессорами (nVidia Quadro / Tesla), могу ли я передать (переместить) несколько устройств на разные виртуальные машины для каждой с помощью одной карты?

Если у меня один из этих процессоров, то у меня есть IOMMU: http://en.wikipedia.org/wiki/List_of_IOMMU-supporting_hardware#CPUs

Подкачка периферийной памяти может поддерживаться IOMMU.: http://en.wikipedia.org/wiki/IOMMU#Advantages

Т.е. если у меня есть IOMMU, то у меня есть Intel «Технология виртуализации для направленного ввода-вывода» (VT-d) которые позволяют делать то, что я хочу.

Но когда мы используем графический процессор nVidia с CUDA> = 5.0, мы можем использовать RDMA GPUDirect и знать, что:

http://docs.nvidia.com/cuda/gpudirect-rdma/index.html#how-gpudirect-rdma-works

Традиционно ресурсы, такие как окна BAR, отображаются в адресное пространство пользователя или ядра с использованием MMU ЦП в качестве адресов ввода-вывода с отображением памяти (MMIO). Однако, поскольку текущие операционные системы не имеют достаточных механизмов для обмена регионами MMIO между драйверами, драйвер ядра NVIDIA экспортирует функции для выполнения необходимых преобразований адресов и сопоставлений.

http://docs.nvidia.com/cuda/gpudirect-rdma/index.html#supported-systems

RDMA для GPUDirect в настоящее время полагается на все физические адреса то же самое с точки зрения устройств PCI. Это делает его несовместимым с модулями IOMMU, и, следовательно, они должны быть отключены для RDMA для работы GPUDirect.

Почему nVidia рекомендовала отключить IOMMU, и могу ли я использовать IOMMU на Sandy / Ivy-Bridge для VT-d, чтобы предоставить каждой виртуальной машине по одному графическому процессору?