Если я использую 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, чтобы предоставить каждой виртуальной машине по одному графическому процессору?