Huawei открыла исходный код AscendNPU IR — промежуточного представления на базе MLIR, лежащего в основе компилятора BiSheng. HFusion отвечает за относительно независимые от оборудования оптимизации, включая объединение операций, разбиение на тайлы и планирование; HIVM переводит их в аппаратно зависимые операции для...
ОпубликовалОтредактировано с помощью GPT-5.6 LunaИзображения созданы с помощью GPT Image 1.5
Ответ на исследование

Create a landscape editorial hero image for this Studio Global article: What did Huawei AscendNPU IR architect Hai Lijuan present at HyperAI’s ninth Meet AI Compiler technical salon on August 1, 2026, and how doe. Article summary: Hai Lijuan’s August 1 salon talk, “AscendNPU IR: open compiler foundation supporting multi-language access to Ascend,” presented the newly open-sourced MLIR compiler layer beneath BiSheng and its path for bringing Triton. Topic tags: general, general web, user generated. Style: premium digital editorial illustration, source-backed research mood, clean composition, high detail, modern web publication hero. Use reference image context only for broad subject, composition, and topical grounding; do not copy the exact image. Avoid: logos, brand marks, copyrighted characters, real person likenesses, fake screenshots, UI text, readable text, watermarks, charts with fa
Открытый AscendNPU IR — это не новый язык программирования для конечного пользователя, а промежуточный компиляторный слой под компилятором BiSheng. Его задача — связать языки и экосистемы операторов, включая Triton и TileLang, с аппаратными ресурсами NPU Huawei Ascend. Архитектор AscendNPU IR Хай Лицзюань представила проект 1 августа 2026 года на девятом техническом салоне Meet AI Compiler, который прошёл в пекинском Чжунгуаньцуне. 3
7
Практический смысл проекта — отделить описание вычислений от всё более сложной работы компилятора: разбиения данных на тайлы, размещения их в многоуровневой памяти, передачи данных между вычислительными блоками, синхронизации и генерации машинного кода для конкретного ускорителя.
AscendNPU IR построен на MLIR — инфраструктуре для создания многоуровневых промежуточных представлений. Он предназначен для компиляции операторов, оптимизированных под Ascend, и предлагает несколько уровней абстракции. Высокие уровни скрывают детали инструкций, перемещения данных и синхронизации, а низкие позволяют разработчику вручную управлять адресами во внутрикристальной памяти и поведением конвейеров. 4
11
К проекту можно подключаться разными способами:
Упрощённо цепочка выглядит так:
Triton, TileLang или IR фреймворка
↓
AscendNPU IR на базе MLIR
↓
Понижение HFusion → HIVM
↓
Инструкции и бинарный код Ascend
В документации проекта указано, что утилита bishengir-compile преобразует MLIR в объектный файл для устройства. Затем этот файл можно зарегистрировать и запустить через runtime-интерфейсы CANN — программного стека Huawei для Ascend. 6
Тайл — это относительно небольшой блок тензорных данных и операций, с которым удобно работать вычислительному ускорителю. Вместо того чтобы каждый фронтенд отдельно описывал все передачи данных, точки синхронизации, уровни памяти и аппаратные инструкции, AscendNPU IR предоставляет им общий тайловый формат.
Такой подход создаёт компромисс между переносимостью и производительностью. Код на Triton или входные данные фреймворка могут начинаться на более высоком уровне, а чувствительные к скорости участки — опускаться к аппаратно-зависимому представлению для ручной или автоматической настройки.
На верхних уровнях разработчик описывает тензорные операции, не указывая каждую деталь оборудования. На нижних уровнях компилятор может учитывать или явно задавать размещение данных в GM, UB, L1 и L0, а также использование ресурсов Vector, Cube и блоков перемещения данных. 5
22
Архитектура AscendNPU IR построена как набор разделённых уровней, которые последовательно описывают инструкции Ascend, внутрядерные и межъядерные ресурсы, а также ресурсы системы на кристалле. 11
HFusion — относительно независимый от конкретного оборудования слой. Он работает с тензорными операциями и подготавливает их к дальнейшему понижению: выполняет объединение операций, буферизацию, тайлинг и планирование. 11
22
Именно здесь компилятор может объединить несколько операций, разделить вычисление на удобные блоки и выбрать схему их выполнения, ещё не фиксируя каждую аппаратную инструкцию. Это позволяет сохранить высокоуровневую семантику оператора и одновременно подготовить её к специфичной для Ascend генерации кода.
HIVM — аппаратно-ориентированный слой. Он переводит выражения над тайлами в операции, учитывающие вычислительные блоки, иерархию памяти и поведение конвейеров Ascend. В его задачи входят:
Такое разделение позволяет оптимизировать вычисления на двух уровнях. HFusion анализирует структуру крупных тензорных операций и возможности их объединения, а HIVM решает, в каких именно областях памяти и на каких вычислительных ресурсах будут выполняться получившиеся тайлы.
Для Ascend 950 общая схема HFusion/HIVM сохраняется, но аппаратно-зависимый слой должен учитывать более широкий набор моделей исполнения. В материалах по новой платформе описана поддержка регистрового SIMD и SIMT в дополнение к прежнему варианту SIMD с опорой на память. 2
При регистровом SIMD данные загружаются из внутрикристальной памяти в регистры, обрабатываются там, а затем записываются обратно. Если структура вычисления это позволяет, регистровое объединение операций удерживает промежуточные значения в регистрах и сокращает повторяющиеся загрузки и выгрузки. 2
SIMT предназначен для подходящих участков с нерегулярным доступом к данным или ветвлением. Описанный компиляторный подход отделяет части оператора, которым выгоден SIMT, от плотных участков, хорошо подходящих для SIMD, применяет к ним разные преобразования, а затем объединяет результат в общей векторной схеме. 2
В некоторых сценариях A2/A3 обмен между Cube и Vector проходил через глобальную память. Для Ascend 950 описан более короткий внутрикристальный маршрут: результаты Cube могут передаваться из L0C во внутрикристальную память Vector, а результаты Vector — возвращаться в память, используемую Cube. 2
Это особенно важно для операторов, где матричная обработка на Cube сменяется векторной обработкой. При этом компилятору по-прежнему необходимо определить, где находится каждый тензор и в какой момент нужны передачи, в том числе если Cube- и Vector-операции расположены в разных ветвях управления.
Несколько специализированных проходов показывают, как AscendNPU IR принимает реальные решения о памяти и порядке выполнения.
Обновлённый проход InsertCVLoadStore анализирует обмен между Cube и Vector через сложные участки управления, а не просто вставляет инструкции по локальному совпадению шаблонов.
Сначала он задаёт опорные точки размещения: например, вход матричного умножения — в L1, результат — в L0C, а входы и выходы векторных операций — в UB. Затем эти ограничения распространяются по программе. Если разные операции требуют несовместимых уровней памяти, компилятор вставляет необходимые преобразования или копирования. 2
Для A2/A3 описанный обмен может использовать загрузку и сохранение через глобальную память. В Ascend 950 там, где это поддерживается, применяются более короткие внутрикристальные пути. 2
MultiBuffer создаёт несколько копий уже существующего тензора. Это позволяет реализовывать буферизацию по схеме ping-pong и перекрывать перемещение данных с вычислениями, если такой график укладывается в доступный объём памяти. 17
18
AutoBlockify и DynamicCVPipeline входят в число Ascend-специфичных проходов в стеке Triton-Ascend. Их назначение отражено в названиях: автоматическое разделение вычислений на исполнимые блоки и построение конвейера взаимодействия Cube и Vector. 19
Документация также перечисляет автоматическое планирование памяти, синхронизацию, планирование выполнения и оптимизации Cube–Vector. 24
Для соответствующей конфигурации Ascend описано соотношение «одно ядро Cube — два ядра Vector». AutoSubTiling может разделить работу Vector на две части, чтобы два векторных ядра обрабатывали их параллельно. 2
14
Huawei открыла AscendNPU IR вместе с Triton-Ascend для совместной разработки с сообществом. Triton-Ascend — адаптированная под Ascend компиляционная среда Triton: она сохраняет основной синтаксис Triton и добавляет поддержку компиляции и развёртывания операторов для продуктов серий A2, A3 и 950. 30
37
Открытие исходного кода даёт разработчикам более прямой путь к работе над компиляторными проходами, интеграцией фронтендов, понижением операторов и аппаратно-зависимой оптимизацией — без необходимости самостоятельно собирать весь компиляторный стек.
По данным о программе сообщества, Huawei также предлагает стажировки, задачи из репозиториев и вознаграждения за их выполнение. Разработчик выбирает доступную задачу, выполняет её и отправляет результат в соответствии с правилами программы. 31
Тем, у кого нет локального оборудования Ascend, предлагается облачная среда HiDevLab сообщества Ascend с 100 бесплатными часами вычислений. Доступные публикации подтверждают саму квоту, но не раскрывают все условия по регистрации, проверке личности, сроку действия и региональной доступности. Эти детали стоит уточнять непосредственно при регистрации. 31
Основная идея AscendNPU IR — создать единый компиляторный вход для Ascend, не отказываясь от глубокой настройки под конкретный чип. Triton, TileLang и IR фреймворков могут подключаться на высоком уровне; HFusion выполняет общие преобразования; HIVM переводит тайлы в конкретные решения по памяти, вычислительным ядрам, обмену данными и конвейерам. 5
11
Ascend 950 расширяет пространство оптимизаций за счёт регистрового SIMD, SIMT и более тесного обмена между Cube и Vector. Но фактический прирост производительности по-прежнему будет зависеть от формы оператора, давления на память, ветвления, зрелости компилятора и конкретного чипа.
Открытая архитектура делает эти компромиссы более прозрачными и позволяет разработчикам операторов и компиляторов непосредственно участвовать в развитии стека Ascend.
Studio Global AI
На этой странице есть ответ, подтвержденный источником, который вы можете продолжить внутри Studio Global.
Huawei открыла исходный код AscendNPU IR — промежуточного представления на базе MLIR, лежащего в основе компилятора BiSheng.
Huawei открыла исходный код AscendNPU IR — промежуточного представления на базе MLIR, лежащего в основе компилятора BiSheng. HFusion отвечает за относительно независимые от оборудования оптимизации, включая объединение операций, разбиение на тайлы и планирование; HIVM переводит их в аппаратно зависимые операции для ядер Cube и Vector, памят...
Для Ascend 950 заявлена поддержка регистрового SIMD, SIMT и более прямого обмена данными между Cube и Vector во внутрикристальной памяти.
Huawei открыла исходный код AscendNPU IR — промежуточного представления на базе MLIR, лежащего в основе компилятора BiSheng. HFusion отвечает за относительно независимые от оборудования оптимизации, включая объединение операций, разбиение на тайлы и планирование; HIVM переводит их в аппаратно зависимые операции для...
ОпубликовалОтредактировано с помощью GPT-5.6 LunaИзображения созданы с помощью GPT Image 1.5
Ответ на исследование

Create a landscape editorial hero image for this Studio Global article: What did Huawei AscendNPU IR architect Hai Lijuan present at HyperAI’s ninth Meet AI Compiler technical salon on August 1, 2026, and how doe. Article summary: Hai Lijuan’s August 1 salon talk, “AscendNPU IR: open compiler foundation supporting multi-language access to Ascend,” presented the newly open-sourced MLIR compiler layer beneath BiSheng and its path for bringing Triton. Topic tags: general, general web, user generated. Style: premium digital editorial illustration, source-backed research mood, clean composition, high detail, modern web publication hero. Use reference image context only for broad subject, composition, and topical grounding; do not copy the exact image. Avoid: logos, brand marks, copyrighted characters, real person likenesses, fake screenshots, UI text, readable text, watermarks, charts with fa
Открытый AscendNPU IR — это не новый язык программирования для конечного пользователя, а промежуточный компиляторный слой под компилятором BiSheng. Его задача — связать языки и экосистемы операторов, включая Triton и TileLang, с аппаратными ресурсами NPU Huawei Ascend. Архитектор AscendNPU IR Хай Лицзюань представила проект 1 августа 2026 года на девятом техническом салоне Meet AI Compiler, который прошёл в пекинском Чжунгуаньцуне. 3
7
Практический смысл проекта — отделить описание вычислений от всё более сложной работы компилятора: разбиения данных на тайлы, размещения их в многоуровневой памяти, передачи данных между вычислительными блоками, синхронизации и генерации машинного кода для конкретного ускорителя.
AscendNPU IR построен на MLIR — инфраструктуре для создания многоуровневых промежуточных представлений. Он предназначен для компиляции операторов, оптимизированных под Ascend, и предлагает несколько уровней абстракции. Высокие уровни скрывают детали инструкций, перемещения данных и синхронизации, а низкие позволяют разработчику вручную управлять адресами во внутрикристальной памяти и поведением конвейеров. 4
11
К проекту можно подключаться разными способами:
Упрощённо цепочка выглядит так:
Triton, TileLang или IR фреймворка
↓
AscendNPU IR на базе MLIR
↓
Понижение HFusion → HIVM
↓
Инструкции и бинарный код Ascend
В документации проекта указано, что утилита bishengir-compile преобразует MLIR в объектный файл для устройства. Затем этот файл можно зарегистрировать и запустить через runtime-интерфейсы CANN — программного стека Huawei для Ascend. 6
Тайл — это относительно небольшой блок тензорных данных и операций, с которым удобно работать вычислительному ускорителю. Вместо того чтобы каждый фронтенд отдельно описывал все передачи данных, точки синхронизации, уровни памяти и аппаратные инструкции, AscendNPU IR предоставляет им общий тайловый формат.
Такой подход создаёт компромисс между переносимостью и производительностью. Код на Triton или входные данные фреймворка могут начинаться на более высоком уровне, а чувствительные к скорости участки — опускаться к аппаратно-зависимому представлению для ручной или автоматической настройки.
На верхних уровнях разработчик описывает тензорные операции, не указывая каждую деталь оборудования. На нижних уровнях компилятор может учитывать или явно задавать размещение данных в GM, UB, L1 и L0, а также использование ресурсов Vector, Cube и блоков перемещения данных. 5
22
Архитектура AscendNPU IR построена как набор разделённых уровней, которые последовательно описывают инструкции Ascend, внутрядерные и межъядерные ресурсы, а также ресурсы системы на кристалле. 11
HFusion — относительно независимый от конкретного оборудования слой. Он работает с тензорными операциями и подготавливает их к дальнейшему понижению: выполняет объединение операций, буферизацию, тайлинг и планирование. 11
22
Именно здесь компилятор может объединить несколько операций, разделить вычисление на удобные блоки и выбрать схему их выполнения, ещё не фиксируя каждую аппаратную инструкцию. Это позволяет сохранить высокоуровневую семантику оператора и одновременно подготовить её к специфичной для Ascend генерации кода.
HIVM — аппаратно-ориентированный слой. Он переводит выражения над тайлами в операции, учитывающие вычислительные блоки, иерархию памяти и поведение конвейеров Ascend. В его задачи входят:
Такое разделение позволяет оптимизировать вычисления на двух уровнях. HFusion анализирует структуру крупных тензорных операций и возможности их объединения, а HIVM решает, в каких именно областях памяти и на каких вычислительных ресурсах будут выполняться получившиеся тайлы.
Для Ascend 950 общая схема HFusion/HIVM сохраняется, но аппаратно-зависимый слой должен учитывать более широкий набор моделей исполнения. В материалах по новой платформе описана поддержка регистрового SIMD и SIMT в дополнение к прежнему варианту SIMD с опорой на память. 2
При регистровом SIMD данные загружаются из внутрикристальной памяти в регистры, обрабатываются там, а затем записываются обратно. Если структура вычисления это позволяет, регистровое объединение операций удерживает промежуточные значения в регистрах и сокращает повторяющиеся загрузки и выгрузки. 2
SIMT предназначен для подходящих участков с нерегулярным доступом к данным или ветвлением. Описанный компиляторный подход отделяет части оператора, которым выгоден SIMT, от плотных участков, хорошо подходящих для SIMD, применяет к ним разные преобразования, а затем объединяет результат в общей векторной схеме. 2
В некоторых сценариях A2/A3 обмен между Cube и Vector проходил через глобальную память. Для Ascend 950 описан более короткий внутрикристальный маршрут: результаты Cube могут передаваться из L0C во внутрикристальную память Vector, а результаты Vector — возвращаться в память, используемую Cube. 2
Это особенно важно для операторов, где матричная обработка на Cube сменяется векторной обработкой. При этом компилятору по-прежнему необходимо определить, где находится каждый тензор и в какой момент нужны передачи, в том числе если Cube- и Vector-операции расположены в разных ветвях управления.
Несколько специализированных проходов показывают, как AscendNPU IR принимает реальные решения о памяти и порядке выполнения.
Обновлённый проход InsertCVLoadStore анализирует обмен между Cube и Vector через сложные участки управления, а не просто вставляет инструкции по локальному совпадению шаблонов.
Сначала он задаёт опорные точки размещения: например, вход матричного умножения — в L1, результат — в L0C, а входы и выходы векторных операций — в UB. Затем эти ограничения распространяются по программе. Если разные операции требуют несовместимых уровней памяти, компилятор вставляет необходимые преобразования или копирования. 2
Для A2/A3 описанный обмен может использовать загрузку и сохранение через глобальную память. В Ascend 950 там, где это поддерживается, применяются более короткие внутрикристальные пути. 2
MultiBuffer создаёт несколько копий уже существующего тензора. Это позволяет реализовывать буферизацию по схеме ping-pong и перекрывать перемещение данных с вычислениями, если такой график укладывается в доступный объём памяти. 17
18
AutoBlockify и DynamicCVPipeline входят в число Ascend-специфичных проходов в стеке Triton-Ascend. Их назначение отражено в названиях: автоматическое разделение вычислений на исполнимые блоки и построение конвейера взаимодействия Cube и Vector. 19
Документация также перечисляет автоматическое планирование памяти, синхронизацию, планирование выполнения и оптимизации Cube–Vector. 24
Для соответствующей конфигурации Ascend описано соотношение «одно ядро Cube — два ядра Vector». AutoSubTiling может разделить работу Vector на две части, чтобы два векторных ядра обрабатывали их параллельно. 2
14
Huawei открыла AscendNPU IR вместе с Triton-Ascend для совместной разработки с сообществом. Triton-Ascend — адаптированная под Ascend компиляционная среда Triton: она сохраняет основной синтаксис Triton и добавляет поддержку компиляции и развёртывания операторов для продуктов серий A2, A3 и 950. 30
37
Открытие исходного кода даёт разработчикам более прямой путь к работе над компиляторными проходами, интеграцией фронтендов, понижением операторов и аппаратно-зависимой оптимизацией — без необходимости самостоятельно собирать весь компиляторный стек.
По данным о программе сообщества, Huawei также предлагает стажировки, задачи из репозиториев и вознаграждения за их выполнение. Разработчик выбирает доступную задачу, выполняет её и отправляет результат в соответствии с правилами программы. 31
Тем, у кого нет локального оборудования Ascend, предлагается облачная среда HiDevLab сообщества Ascend с 100 бесплатными часами вычислений. Доступные публикации подтверждают саму квоту, но не раскрывают все условия по регистрации, проверке личности, сроку действия и региональной доступности. Эти детали стоит уточнять непосредственно при регистрации. 31
Основная идея AscendNPU IR — создать единый компиляторный вход для Ascend, не отказываясь от глубокой настройки под конкретный чип. Triton, TileLang и IR фреймворков могут подключаться на высоком уровне; HFusion выполняет общие преобразования; HIVM переводит тайлы в конкретные решения по памяти, вычислительным ядрам, обмену данными и конвейерам. 5
11
Ascend 950 расширяет пространство оптимизаций за счёт регистрового SIMD, SIMT и более тесного обмена между Cube и Vector. Но фактический прирост производительности по-прежнему будет зависеть от формы оператора, давления на память, ветвления, зрелости компилятора и конкретного чипа.
Открытая архитектура делает эти компромиссы более прозрачными и позволяет разработчикам операторов и компиляторов непосредственно участвовать в развитии стека Ascend.
Studio Global AI
На этой странице есть ответ, подтвержденный источником, который вы можете продолжить внутри Studio Global.
Huawei открыла исходный код AscendNPU IR — промежуточного представления на базе MLIR, лежащего в основе компилятора BiSheng.
Huawei открыла исходный код AscendNPU IR — промежуточного представления на базе MLIR, лежащего в основе компилятора BiSheng. HFusion отвечает за относительно независимые от оборудования оптимизации, включая объединение операций, разбиение на тайлы и планирование; HIVM переводит их в аппаратно зависимые операции для ядер Cube и Vector, памят...
Для Ascend 950 заявлена поддержка регистрового SIMD, SIMT и более прямого обмена данными между Cube и Vector во внутрикристальной памяти.