NVIDIA препятствует разработке транслирующих прослоек для запуска CUDA на других платформах

Разбор легальности создания альтернативных реализаций технологии CUDA, таких как недавно опубликованный пакет ZLUDA 3, позволяющий запускать CUDA-приложения на GPU AMD, показал, что начиная с выпуска CUDA Toolkit 11.5 компания NVIDIA добавила в пользовательское соглашение (EULA) пункт, запрещающий обратный инжиниринг, декомпиляцию и дизассемлирвоание любых частей вывода, генерируемого инструментарием CUDA, выполняемого с целью трансляции подобных выводимых артефактов для платформ, отличных от NVIDIA. Перекомпиляция исходного кода CUDA-программ, поддерживаемая инструментами для перевода CUDA-программ на API AMD ROCm и Intel OpenAPI, не подпадает под запрет.

Упомянутое дополнение EULA было добавлено в CUDA в октябре 2021 года. До этого в выпуске CUDA 11.4 подобный запрет отсутствовал. Примечательно, что примерно в то же время в 2021 году компания Intel свернула поддержку разработки проекта ZLUDA по обеспечению запуска CUDA-приложений на GPU Intel, отметив его, как “не представляющий интерес для бизнеса”. После этого разработчик ZLUDA по заказу компании AMD занялся созданием аналогичной прослойки для работы CUDA на GPU AMD, но спустя два года компания AMD свернула поддержку под тем же предлогом, что и Intel. Изменение в EULA также могло быть связано с противостоянием с китайскими производителями GPU, заявлявшими о разработке транслирующей прослойки, позволяющей запускать CUDA-код на их чипах.

Release. Ссылка here.