CUDA запустили на ускорителях AMD без переписывания кода
Небольшой британский стартап Spectral Compute предложил необычный способ ослабить зависимость разработчиков от видеокарт Nvidia. Его компилятор SCALE позволяет запускать программы, написанные для CUDA, на ускорителях AMD — причём исходный код менять не требуется.
Решение интересно тем, что CUDA давно стала почти стандартом для искусственного интеллекта и сложных вычислений. Даже когда оборудование конкурентов выглядит выгоднее, компании часто остаются с Nvidia из-за огромного количества уже написанного софта.
Главная проблема не в самих видеокартах
CUDA — это программная платформа Nvidia, вокруг которой за годы появилась большая экосистема библиотек и инструментов. На ней работают многие проекты в области машинного обучения, научных расчётов и обработки данных.
Перенести такой проект на ускоритель AMD обычно сложнее, чем просто заменить одну видеокарту другой. Код приходится переводить, проверять и местами переписывать вручную. Из-за этого экономия на оборудовании может обернуться дополнительными расходами на разработчиков.
Spectral Compute решила не переводить CUDA в другой язык, а создать полноценную замену фирменному компилятору Nvidia NVCC. SCALE берёт исходный CUDA-код и сразу собирает его под нужное оборудование.
Для программиста это выглядит намного проще: существующий проект можно перенести на другую платформу без масштабной переделки.
В некоторых задачах SCALE оказался быстрее решений AMD
У AMD уже есть собственный инструмент HIPIFY, который помогает переносить CUDA-программы в экосистему ROCm. Однако он преобразует код в C++ и не всегда использует все возможности ускорителя.
SCALE работает на более низком уровне. По результатам тестов, на видеокартах AMD новый компилятор в отдельных сценариях оказался до шести раз быстрее HIPIFY.
Это не означает, что любой ИИ-проект автоматически ускорится в шесть раз. Результат зависит от конкретной программы, используемых библиотек и оборудования. Но сам факт показывает, насколько сильно производительность может зависеть не только от чипа, но и от качества программных инструментов.
Другой популярный вариант, Intel SYCLomatic, способен автоматически перенести около 90 % кода. Оставшуюся часть разработчикам приходится исправлять самостоятельно. SCALE пытается убрать и этот барьер.
CUDA может перестать быть привязана к Nvidia
Создатели SCALE не пытаются уничтожить CUDA. Наоборот, они считают, что она ещё долго останется главным языком для высокопроизводительных вычислений. Сейчас на CUDA приходится около 80 % кода в этой области.
Идея стартапа заключается в другом: сохранить привычные инструменты, но позволить запускать программы на оборудовании разных производителей.
Если такой подход приживётся, компании смогут выбирать ускорители не по совместимости с кодом, а по цене, доступности и производительности. Это особенно важно на фоне дефицита ИИ-чипов и высокой стоимости решений Nvidia.
Spectral Compute уже работает над поддержкой популярных библиотек cuDNN, cuTENSOR и cuDF. В планах также совместимость с PyTorch, чтобы перенос проектов стал удобнее для обычных команд машинного обучения.
Проект пока остаётся небольшим
В Spectral Compute работают около 30 человек. Коммерческие организации могут купить компилятор, а учебным заведениям и некоммерческим проектам его предоставляют бесплатно.
При этом стартап не собирается конфликтовать с производителями оборудования. Компания сотрудничает с AMD и даже вошла в программу Nvidia Inception, созданную для поддержки молодых технологических проектов.
Пока SCALE нельзя назвать готовой универсальной заменой всей экосистеме Nvidia. Поддержка библиотек ещё расширяется, а реальные корпоративные проекты потребуют дополнительного тестирования.
Но направление выглядит перспективно. Если CUDA-код действительно получится свободно запускать на ускорителях разных брендов, рынок ИИ-оборудования станет заметно гибче, а разработчикам не придётся выбирать между привычным софтом и более доступными чипами.
