9 августа на девятом техническом салоне Meet AI Compiler, организованном компанией HyperAI, архитектор AscendNPU IR из Huawei Хай Лицзюань представила открытый компиляционный фундамент AscendNPU IR, обеспечивающий поддержку многоплатформенных языков доступа к архитектуре Ascend. Докладчики из Пекинской академии искусственного интеллекта, команды TileRT, Tencent, Huawei и «Чжиюань Инновейшн» обсудили эволюцию компиляторов ИИ в разрезе языковой выразительности, операторных вычислений, выполнения логического вывода и развертывания сценариев.
Эффективность программирования Triton обусловлена синтаксисом, напоминающим Python, и блочным tile-программированием, которое скрывает от разработчиков низкоуровневые детали, такие как внутричиповая память, инструкции и конвейеры, снижая порог разработки операторов. Модель tile позволяет разработчикам сосредоточиться на разделении данных и абстракции тензорных операций, тогда как объединение памяти и управление разделяемой памятью автоматизированы. Диалекты Triton и официальный GPU-компилятор Triton построены на многоуровневых IR-абстракциях, оптимизированных под разное оборудование.
AscendNPU IR — это MLIR-ориентированная tile-уровневая абстракция для аппаратного обеспечения Ascend, служащая базовой оптимизации компиляции. Она стыкуется снизу с LLVM IR и компилируется в бинарные файлы Ascend, в то время как сторонние языки и компиляторы, такие как Triton, могут подключаться сверху для адаптации к Ascend. Ключевые характеристики: абстракция внутричиповых ресурсов «снизу вверх», включая память и блоки перемещения данных, а также абстрактные tile-уровневые операции с кросс-архитектурной поддержкой, охватывающей A2/A3 через архитектуры SIMD и SIMT Ascend 950. Первое поколение архитектуры имеет два уровня: независимый от оборудования уровень HFusion для многомерной оптимизации слияния и зависимый от оборудования уровень HIVM, выполняющий отображение ядер, внутричиповой памяти и вычислительных блоков. Отображение ядер назначает операции cube и vector соответствующим ядрам с автоматическим управлением передачей данных, синхронизацией и рабочим пространством, а также оптимизацией конвейера CV. Отображение памяти преобразует логические тензоры в физическую память, включая фрактальные матричные форматы cube, а отображение вычислительных блоков обеспечивает векторизацию для высокопроизводительных инструкций.
Архитектура меняется от A2/A3 к анонсированному в этом году Ascend 950: HFusion остается стабильным, в то время как HIVM расширяется от памяти-ориентированного SIMD до регистр-ориентированного SIMD и SIMT, а компиляция CV-слияния, которая ранее обменивалась данными между cube- и vector-ядрами через глобальную память, теперь использует тесно связанное внутричиповое взаимодействие. Новые возможности включают улучшенный анализ InsertCVLoadStore для сложных потоков управления, MultiBuffer с независимым буферным счетчиком для while- и вложенных потоков управления, AutoBlockify, объединяющее логические ядра в циклы for, CV Pipeline для конвейеризации cube-vector в стиле flash-attention, а также CV-разделение 1:2, при котором два vector-ядра каждое вычисляют половину данных относительно одного cube-ядра.
Triton-Ascend и AscendNPU IR теперь открыты с открытым исходным кодом для совместной разработки. Сообщество Ascend запустило открытые стажировки и задачи для сообщества, ссылки на которые размещены на домашних страницах репозиториев; каждый разработчик берет одну задачу за раз с вознаграждением. Для тех, у кого нет среды Ascend, сообщество предлагает бесплатную вычислительную платформу Ascend HiDevLab, где разработчики могут зарегистрироваться и получить 100 бесплатных часов вычислительного времени.
Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.
Автор – Pandaily




