ZLUDA, реализация, позволяющая запускать приложения CUDA на графических процессорах AMD.

ЗЛУДА

ZLUDA работает на стеке AMD ROCm

Вышла новость о том, что AMD приняла решение прекратить финансирование разработки ZLUDA, который открытая реализация технологии CUDA для графических процессоров AMD, позволяя запускать приложения CUDA без их модификации с производительностью, близкой к производительности приложений, работающих без дополнительных уровней.

В течение последних двух лет велись работы по развитию этого пласта. для облегчения выполнения приложений CUDA в системах с графическими процессорами AMD. Но до недавнего времени AMD приняла решение, что запускать приложения CUDA на графических процессорах AMD не представляло коммерческого интереса, что позволило разработчику раскрыть свои разработки как оговорено в договоре.

О ЗЛУДЕ

В рамках проекта изначально был создан для поддержки работы CUDA на графических процессорах Intel. а изменение политики поддержки графических процессоров связано с тем, что изначально разработчиком ZLUDA был сотрудник Intel. В 2021 году Intel решила, что это коммерчески нежизнеспособно предоставить возможность запуска приложений CUDA на графических процессорах Intel, что привело к прекращению разработки инициативы.

В начале 2022 г. разработчик покинул Intel и подписал контракт с AMD на продолжение разработки уровня совместимости CUDA. Во время разработки AMD потребовала, чтобы интерес компании к проекту ZLUDA не пропагандировался и не сохранялся в общедоступном репозитории ZLUDA.

ZLUDA обеспечивает бинарную поддержку приложений CUDA. существующие скомпилированы с помощью компилятора CUDA для графических процессоров NVIDIA, без необходимости внесения изменений на уровне исходного кода. Реализация работает на стеке AMD ROCm и среде выполнения HIP.

В своем нынешнем состоянии, Уровень качества конвертации ZLUDA считается альфа-версией. Хотя стоит отметить, что он уже способен запускать множество приложений CUDA, помимо обеспечения минимальной поддержки примитивов и библиотек, он также имеет прототипные реализации платформы OptiX.

ЗЛУДА

Сравнительная таблица ЗЛУДА

При первом запуске приложений CUDA под управлением ZLUDA возникают заметные задержки. потому что ZLUDA компилирует код для графического процессора. Однако, при последующих запусках эта задержка исчезает, поскольку скомпилированный код кэшируется, что приводит к почти естественной производительности при запуске скомпилированного кода. Например, при запуске Geekbench на графическом процессоре AMD Radeon 6800 XT версия набора тестов CUDA на основе ZLUDA показала значительно лучшую производительность, чем версия на основе OpenCL.

Кроме того, упоминается, что поддержка официального API драйвера CUDA и реверс-инжиниринг недокументированного API CUDA реализованы в ZLUDA путем замены вызовов функций аналогичными функциями, предоставляемыми в среде выполнения HIP, что очень похоже на CUDA.

Например, функция cuDeviceGetAttribute() заменяется на hipDeviceGetAttribute(). ZLUDA также обеспечивает совместимость с библиотеками NVIDIA, такими как NVML, cuBLAS и cuSPARSE. Для этих библиотек ZLUDA предоставляет библиотеки перевода с тем же именем и тем же набором функций, созданные на основе аналогичных библиотек AMD. Код приложения графического процессора, скомпилированный в представлении PTX (Parallel Thread Execution), транслируется специальным компилятором в промежуточное IR-представление LLVM, из которого генерируется двоичный код для графического процессора AMD.

Наконец, следует отметить, что Будущее проекта зависит от интереса сообщества и возможные предложения о сотрудничестве от других компаний. Без внешней поддержки проект продолжит развиваться исключительно в областях, представляющих личный интерес для автора, таких как DLSS.

Для интересует код проекта, следует знать, что он написан на Rust и распространяется под лицензиями MIT и Apache 2.0, а также проект совместим с Linux и Windows. Если вы заинтересованы в получении дополнительной информации об этом, вы можете ознакомиться с подробностями. По следующей ссылке.


Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: AB Internet Networks 2008 SL
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.