Новости

Стартап ужесточает Nvidia: моделирует CUDA на картах AMD, а оригинальные программы можно компилировать и запускать напрямую

2024-07-16

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

  • Креси происходит из храма Аофей.
    Кубиты | Публичный аккаунт QbitAI

Без каких-либо модификаций или преобразований видеокарта AMD может запускать оригинальную программу CUDA!

Британская стартап-компания выпустила инструмент компиляции программ CUDA для AMD, который бесплатен для коммерческого использования.

Как только инструмент был выпущен, он вызвал широкое бурное обсуждение среди пользователей сети иДостиг вершины горячего списка HackerNews



Инструмент называется SCALE, и разработчики позиционируют его как набор инструментов для программирования GPGPU (GPU общего назначения).



На данный момент 9 программ, включая платформу больших моделей llama-cpp, прошли тестирование и работают нормально.

В отличие от других реализаций, SCALEНепосредственная имитация установки набора инструментов CUDA., нет необходимости конвертировать в другие языки для завершения компиляции из исходников.

Таким образом, SCALE также может обеспечить поддержку промежуточных языков, специфичных для NVIDIA, таких как встроенный PTX.

Нет необходимости конвертировать, позвольте AMD запустить CUDA

Введение на официальном веб-сайте показывает, что SCALE в основном имеет трехкомпонентный компилятор nvcc, реализацию AMD среды выполнения и API драйверов CUDA, а также библиотеку ROCm.

Компилятор может напрямую компилировать программы, написанные на языках, специфичных для CUDA, включая nvcc, встроенный PTX и т. д., в двоичные коды, которые могут работать на графических процессорах AMD.

Библиотека ROCm используется для предоставления API «CUDA-X», и SCALE использует этот метод при работе с такими библиотеками, как cuBLAS и cuSOLVER.



Ключевое нововведение SCALE заключается в том, чтоПримите программу CUDA как есть, без необходимости переносить их на другой язык,Совместимость с nvcc и clang.и другие методы компиляции, в то время как существующие инструменты сборки и сценарии (например, cmake) могут работать нормально.

Согласно официальному заявлению, SCALE полностью совместим с CUDA, что позволяетРазработчикам не нужно писать отдельные коды для разных платформ графических процессоров.

Это сильно отличается от HIP, запущенного AMD, поскольку HIP определенным образом переписывает код CUDA и может быть не в состоянии правильно понимать сложные макросы, а также не поддерживает проприетарные языки, такие как встроенный PTX.

Даже автор SCALE считает, что HIP не может решить проблему совместимости CUDA.

Кроме того, язык SCALE является расширенной версией CUDA, предоставляя некоторыеДополнительные языковые расширения, что может упростить и повысить эффективность написания кода графического процессора для разработчиков, желающих избавиться от nvcc.

Автор выразил надежду, что в будущем разработчики смогут написать код один раз и запускать его на разных аппаратных платформах, и работает над преодолением разрыва в совместимости между популярным языком программирования CUDA и оборудованием других производителей.

В настоящее время поддержка SCALE различных серий графических процессоров AMD заключается в следующем:

  • Уже поддерживаются: gfx1030 (серия RX6000) и gfx1100 (серия RX7000)
  • «кажется, работает»: gfx1010 (серия RX5000) и gfx1101
  • Адаптация: gfx900 (серия RX Vega)

Кроме того, автор протестировал несколько проектов с открытым исходным кодом CUDA и успешно запустил 9 приложений CUDA с использованием SCALE.



Однако SCALE — это совершенно новый проект, поэтому автор также подготовил серию руководств от установки до компиляции, предоставляя различные типы примеров программ.

Ключевые этапы руководства сопровождаются соответствующими кодами и даже включают в себя определение модели вашего собственного графического процессора, что, можно сказать, очень подробно.



Если во время использования у вас возникнут проблемы, автор также представляет общие методы устранения неполадок, а также открывает форум Discord для прямого общения с командой разработчиков.



Стартап, создавший SCALE, называетсяСпектральный вычислитель, основанная в Великобритании в 2018 году, утверждает, что обладает глубоким пониманием архитектуры процессоров и графических процессоров, и ее цель — помочь разработчикам эффективно использовать вычислительные ресурсы.



Пользователи сети: Бросить вызов рву Nvidia?

Некоторые пользователи сети полагают, что если SCALE действительно сможет дать эффект (как рекламируется), он бросит вызов NVIDIA и позволит AMD напрямую конкурировать с ней.



Однако сейчас делать выводы пока рано, ведь представители SCALE также признают, что некоторые недостатки по сравнению с оригинальным CUDA всё же есть.

А еще разработчик дал понять, что некоторые CUDA API и функции не поддерживаются, но не привел конкретного списка.



Что касается других недостатков «решения AMD», пользователь сети, который утверждал, что общался с командой SCALE, сказал, что текущий SCALE не может работать с TensorCore, а это означает, что платформа ускорения FlashAttention не может быть запущена на AMD.

Кроме того, поскольку карта N имеет мощный блок матричного умножения, даже если его можно скомпилировать и запустить, производительность карты AMD может быть не такой хорошей, как у карты N.



Некоторые пользователи сети считают, что причина доминирования Nvidia заключается в том, что AMD не желает инвестировать в повышение производительности своего графического процессора при машинном обучении (а не только в преимущество CUDA).



Даже если они будут работать эффективно, остается вопрос, действительно ли карты AMD доступны по цене.



Другая волна пользователей сети считает, что самая большая проблема заключается не в том, может ли он работать технически, а в стоящих за ним юридических вопросах.

Этот вопрос также вызвал широкую дискуссию, но вывода пока нет.

Некоторые считают, что SCALE так же сомнительна с юридической точки зрения, как и ZLUDA (еще один способ запуска программ CUDA на AMD), и может привести к судебным искам со стороны NVIDIA.



В частности, согласно условиям лицензионного соглашения NVIDIA, CUDA SDK позволяет разрабатывать только приложения, работающие на картах N, что может запрещать совместимые реализации, такие как SCALE.



Но некоторые пользователи сети сразу же заявили, что SCALE не использует «SDK» NVIDIA, так зачем говорить о соглашении об использовании SDK?



Короче говоря, будь то технический недостаток или юридический вопрос, дискуссия об этом новом инструменте все еще продолжается.

А насчет того, полезно это или нет, решать разработчикам ногами.

Справочные ссылки:
[1]https://docs.scale-lang.com/
[2]https://news.ycombinator.com/item?id=40970560