Как запустить GPGPU внутри изображения докеров с отличием от версии ядра ядра и версии драйвера GPU
У меня есть машина с несколькими графическими процессорами. Моя идея - прикрепить их к разным экземплярам докеров, чтобы использовать эти экземпляры в вычислениях CUDA (или OpenCL).
Моя цель - установить изображение докеры с довольно старыми Ubuntu и довольно старыми видеодрайверами AMD (13.04). Причина проста: обновление до более новой версии драйвера нарушит мою программу OpenCL (из-за ошибок драйверов AMD Linux).
Итак, вопрос следующий. Можно ли запустить изображение докеров с помощью старого Ubuntu, старого ядра (например, 3.14) и старого драйвера AMD (fglrx
) на новой установке Arch Linux со свежими ядрами 4.2 и более новыми драйверами AMD (fglrx
) в репозитории?
P.S. Я пробовал этот ответ (с картами Nvidia) и, к сожалению, deviceQuery
внутри изображения докеры не видно никаких устройств CUDA (как это случилось с некоторыми комментаторами исходного ответа)...
P.P.S. Моя настройка:
- Процессор: Intel Xeon E5-2670
-
Графические процессоры:
-
1 x Radeon HD 7970
$ lspci -nn | grep Rad
83:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] [1002:6798]
83:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Tahiti XT HDMI Audio [Radeon HD 7970 Series] [1002:aaa0]
-
2 x GeForce GTX Titan Black
Ответы
Ответ 1
С докером вы полагаетесь на виртуализацию на уровне операционной системы. Это означает, что вы используете одно и то же ядро во всех контейнерах. Если вы хотите запускать разные ядра для каждого контейнера, вам, вероятно, придется использовать виртуализацию на уровне системы, например, KVM, VirtualBox. Если ваша установка поддерживает Intel VT-d, вы можете передать GPU в качестве устройства PCIe в контейнер (лучшая терминология в этом случае - виртуальная машина).