Проект ZLUDA для запуска CUDA на видеокартах не от Nvidia демонстрирует значительный прогресс
Проект ZLUDA, представляющий собой слой перевода CUDA для работы на видеокартах не от Nvidia, продолжает развиваться. В прошлом году проект был на грани закрытия, но его спас неизвестный спонсор. На этой неделе команда опубликовала отчёт о прогрессе за второй квартал 2025 года, сообщает Phoronix. Основное внимание сейчас уделяется поддержке задач искусственного интеллекта, но также начата работа над совместимостью с 32-битными версиями PhysX, что важно для старых игр, использующих CUDA.
Ключевое изменение — расширение команды разработчиков с одного до двух человек. Вторая участница, Виолет, присоединилась менее месяца назад и уже внесла значительный вклад, особенно в улучшение поддержки больших языковых моделей (LLM) через проект llm.c.
Поддержка 32-битного PhysX
Участник сообщества под ником @Groowy начал работу над добавлением поддержки 32-битного PhysX, собрав подробные логи CUDA. Это выявило несколько ошибок, часть из которых влияет и на 64-битные версии. Исправление этих проблем включено в официальный план разработки, но для полной реализации поддержки потребуется помощь других участников открытого сообщества.
Совместимость с LLM.c
Команда ZLUDA тестирует совместимость с проектом llm.c — небольшой программой, запускающей модель GPT-2 через CUDA. Это важный шаг, так как впервые проверяется работа как стандартных функций CUDA, так и специализированных библиотек, таких как cuBLAS. Изначально ZLUDA падала на первом же вызове, но после доработок Виолет теперь проходит до 552-го вызова. Поддержка 16 из 44 необходимых функций уже реализована.
Повышение точности работы
Главная цель ZLUDA — максимально точное воспроизведение поведения CUDA на видеокартах не от Nvidia. Ранние версии иногда жертвовали точностью, но текущая реализация значительно улучшена. Для проверки используются PTX-тесты, которые выявляют отклонения в работе инструкций. Некоторые сложные инструкции, такие как cvt, уже проходят проверку на битовую точность.
Улучшение системы логов
Для отладки CUDA-приложений критически важны логи взаимодействия с API. В новой версии система логирования ZLUDA стала значительно детальнее, фиксируя ранее невидимые процессы, включая взаимодействие cuBLAS с cuBLASLt и работу cuDNN с низкоуровневыми API драйверов.
Совместимость с динамической компиляцией
Современные GPU-фреймворки, включая CUDA и ROCm/HIP, используют динамическую компиляцию кода. В ROCm/HIP 6.4 произошло изменение ABI, что привело к ошибкам в ZLUDA, особенно на Windows, где библиотека использовала смешанные версии ABI. Эти проблемы также были исправлены.
Источник: Tomshardware.com
0 комментариев