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