Как запустить 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 в контейнер (лучшая терминология в этом случае - виртуальная машина).