Инженеры компании AMD опубликовали на GitHub исходный код проекта GIM (GPU‑IOV Module). Это модуль для ядра Linux с реализацией возможности аппаратной виртуализации GPU на устройствах AMD, поддерживающих технологию SR‑IOV (Single Root I/O Virtualization).
Решение SR‑IOV позволяет распределять ресурсы одного физического устройства между несколькими виртуальными машинами. При помощи GIM виртуальные машины напрямую могут получить доступ к ресурсам GPU, что позволяет значительно поднять производительность, благодаря исключению лишних прослоек, обеспечивая при этом необходимый уровень изоляции.
Исходный код проекта GIM написан на языке С и опубликован в открытом доступе под лицензией MIT. Готовые пакеты доступны для Ubuntu 22.04.
По информации OpenNET, в настоящее время драйвер может работать только с продуктами AMD, поддерживающими механизм разделения ресурсов MxGPU, основанный на стандарте SR‑IOV. Заявлена поддержка ускорителей серии AMD Instinct MI300X, предназначенных для выполнения высокопроизводительных вычислений и решения задач машинного обучения в дата‑центрах. Отдельно разработчики GIM упомянули планы по адаптации модуля для использования с GPU, применяемых в потребительских дискретных видеокартах.
Модуль GIM совместим с системами виртуализации на базе гипервизора KVM и предоставляет такие возможности, как инициализация GPU‑IOV, настройка и включение виртуальных функций, планирование распределения ресурсов GPU между виртуальными машинами, определение зависаний, выполнение сброса состояния на уровне виртуальной функции (FLR, Function Level Reset), согласование взаимодействия между физическим устройством (PF) и виртуальными функциями (VF) SR‑IOV.
Поддержка GIM/SR‑IOV может появиться в клиентских дискретных графических процессорах, что является долгожданной функцией для видеокарт Radeon. Инженер AMD Ануш Элангован ответил в соцсети X, что этот момент «в планах»:
Источник: habr.com