
Тулкиты Microsoft для перевода CUDA в ROCm: Снижение стоимости вывода и борьба с доминированием NVIDIA
В последние годы CUDA от NVIDIA является основой мира ИИ. Комбинация высокопроизводительных чипов и зрелой программной платформы позволила компании не просто занять большую долю рынка, но и создать настоящий «замок» для своих пользователей. Большинство инструментов и моделей в ИТ-индустрии строятся вокруг CUDA, что делает переход на другое оборудование затратным по времени, деньгам и рискам.
Но теперь, согласно информации от нескольких источников, Microsoft разработала тулкиты, которые позволяют переводить код, написанный для CUDA, в формат, совместимый с ROCm от AMD. Цель: эффективно выполнять выводы на графических процессорах AMD Instinct (например, MI300X), что позволит не только повысить пропускную способность, но и снизить стоимость единицы обработки в облаке. В ситуации, когда затраты на вывод в облаке часто превышают расходы на обучение моделей, даже небольшие улучшения производительности могут существенно изменить экономику бизнеса.
От закрытого формата к более открытой платформе
Переводить код CUDA не так уж и ново. Существует два основных пути. Первый — это переписать код под HIP, адаптировав ядра и пересобрав их для работы с ROCm. Этот путь чистый, но требует времени и значительных усилий, так как каждое приложение требует индивидуальной доработки. Второй путь — это использование слоя совместимости на уровне выполнения, который перехватывает вызовы API CUDA и переводит их в эквиваленты для ROCm. Примером такого решения является проект ZLUDA, который на практике реализует эту концепцию, переводя вызовы CUDA в ROCm без переписывания исходного кода. Судя по всему, Microsoft использует именно второй подход, дополняя его облачной инфраструктурой для облегчения перехода на новые вычислительные мощности, смешивающие графические процессоры AMD и NVIDIA.
Сложности: разрывы в производительности и риски для операций
ROCm быстро развивается, но он не является полноценной заменой CUDA. Некоторые API CUDA не имеют прямого аналога в ROCm, а оптимизированные для одного производителя ядра могут работать хуже на другом. Поэтому перевод с CUDA на ROCm может привести к снижению производительности. В случаях с вычислениями в реальном времени или выводом данных такие падения могут вылиться в огромные дополнительные расходы или даже сбои в работе сервисов. Известно, что Microsoft ограничивает масштабы применения таких инструментов, переводя только те рабочие нагрузки, которые могут работать без риска для надежности работы крупных вычислительных центров.
Почему вывод — это первая цель
Обучение моделей привлекает внимание, но вывод приносит деньги. Когда модели начинают работать в реальных приложениях — будь то поисковые системы, личные помощники или корпоративные сервисы, каждая миллисекунда и каждый ватт имеют значение. Графические процессоры AMD Instinct MI300X предоставляют привлекательные характеристики памяти для работы с большими контекстами, при этом их цена значительно ниже, чем у топовых моделей от NVIDIA. Если Microsoft удастся добиться того, чтобы модели, обученные под CUDA, работали на ROCm с минимальными затратами, это откроет новые возможности для снижения стоимости вывода.
Юридические вопросы: все ли по закону?
Некоторые спрашивают, является ли перевод CUDA в ROCm нарушением закона. На самом деле, такие переводы не новы в мире программного обеспечения. Вопрос скорее заключается в соблюдении лицензионных соглашений и условий распространения, чем в самом процессе перевода. Важно следовать стандартам чистого кода, избегать нарушения авторских прав и не нарушать лицензионные соглашения. Для Microsoft это значит следовать законодательству и быть уверенным, что их инструменты не приведут к юридическим проблемам.
Стратегия многовендорности
Нельзя не учитывать более широкую картину. Microsoft — крупный клиент NVIDIA, активно сотрудничает с AMD по проектам Instinct и, одновременно, разрабатывает собственные чипы для ИИ, известные как MAIA. Недавние слухи о том, что Intel будет производить чипы MAIA, подчеркивают простую истину: крупные облачные сервисы хотят иметь выбор. Тулкиты для перевода CUDA — это не попытка обойти одного производителя, а возможность увеличить гибкость и предсказуемость при высоком спросе и колебаниях цен на компоненты.
Что стоит ждать дальше
- Дальнейшее развитие ROCm 7.x: улучшение покрытия ядра, стабильность захвата графа и отладка для вывода LLM и диффузионных моделей.
- Паритет моделей: полноценная поддержка популярных фреймворков (PyTorch, ONNX Runtime, vLLM и аналоги TensorRT-LLM).
- Инструменты для операций: улучшенная видимость, автоматическая настройка и планирование работы, которые учитывают оба типа графических процессоров в Azure.
- Экономика: долгосрочные улучшения стоимости вывода без скрытых налогов для клиентов.
Общий итог
Если тулкиты Microsoft смогут стабильно переносить модели, обученные с использованием CUDA, на чипы AMD, индустрия получит реальный путь к выходу из зависимости от одного производителя. Это не приведет к немедленной победе над CUDA, но ослабит его господство. В ближайшей перспективе мы увидим более здоровую конкуренцию: NVIDIA усилит свою платформу вывода, AMD ускорит разработку ROCm и улучшение опыта работы с разработчиками, а облачные провайдеры будут делать ставки на все три направления — NVIDIA, AMD и собственные чипы. Для крупных компаний это означает, что портируемость моделей наконец-то станет стандартом, а не проектом.