Суть проекта: мост между CUDA и ROCm
Несмотря на то, что AMD официально добавила поддержку PyTorch и HIP SDK для Windows, многие специализированные AI-инструменты и старые репозитории жестко привязаны к экосистеме NVIDIA. Проект CUDA-for-AMD-Windows от независимого разработчика Speedstu решает эту проблему, создавая автоматизированный мост. Скрипт использует ZLUDA (трансляционный слой, ранее финансировавшийся AMD) для перехвата вызовов CUDA Driver API и маппинга их на нативные библиотеки AMD ROCm/HIP, уже установленные в системе.
Решение не требует установки виртуальных машин, двойной загрузки или сложной настройки WSL2. Пользователю достаточно запустить PowerShell-скрипт, который автоматически определяет архитектуру GPU и подтягивает нужную версию ZLUDA (на момент теста — v6-preview.69).
Технические детали и ограничения
Проект успешно интегрировал несколько ключевых библиотек, но имеет критические пробелы. Удалось запустить cuBLAS, cuSPARSE и cuFFT. Однако популярные в глубоком обучении библиотеки cuDNN, TensorRT и NCCL пока не работают. Это означает, что совместимость зависит от конкретного workload: если инструмент сильно зависит от cuDNN, запуск не состоится.
В качестве доказательства концепции автор обучил нейросеть PPO (reinforcement learning) с 2.2 миллиона параметров на видеокарте Radeon RX 9060 XT — единственной на данный момент официально поддерживаемой модели в рамках этого метода.
Результаты бенчмарков
Разработчик провел сравнительное тестирование производительности. Были сопоставлены «официальный upstream» (чистая связка ZLUDA и HIP SDK 6.4) и «восстановленная кастомная сборка» из старых бинарников. Результаты показали, что официальная сборка работает стабильнее и немного быстрее.
| Метрика | Public upstream (Официальная) | Recovered custom (Кастомная) | Разница |
|---|---|---|---|
| Overall SPS, median | 13,278.46 | 12,875.80 | -3.03% |
| Overall SPS, mean | 13,172.49 | 12,649.83 | -3.97% |
| Collection SPS, median | 63,306.00 | 59,360.67 | -6.23% |
| Inference time, median | 0.5863 s | 0.6293 s | +7.33% (медленнее) |
| PPO learn time, median | 3.2076 s | 3.2958 s | +2.75% (медленнее) |
Почему это важно, но рискованно
Проект доказывает, что барьер для запуска CUDA-софта на AMD в Windows — это не аппаратное ограничение, а проблема инструментальной совместимости, которую можно решить трансляцией. Однако важно понимать контекст:
- Статус ZLUDA: Проект находится в стадии «выходного хобби» после потери коммерческой поддержки. Это не enterprise-решение.
- Производительность: Наличие слоя трансляции всегда влечет за собой накладные расходы. Хотя разница в 3-7% на тестовой нагрузке не критична, в сложных сценариях она может быть выше.
- Назначение: Это инструмент для энтузиастов и разработчиков, желающих протестировать экспериментальные репозитории на своем основном ПК, а не для продакшн-серверов.
Тем не менее, открытость кода дает надежду на то, что сообщество сможет доработать поддержку недостающих библиотек и расширить список совместимых GPU в будущем.
Источник: Tom's Hardware ↗
