A Huawei abriu o código do AscendNPU IR, base de representação intermediária baseada em MLIR do compilador BiSheng, após uma apresentação de Hai Lijuan em 1º de agosto de 2026. O HFusion concentra fusão, divisão em tiles e escalonamento em um nível relativamente independente do hardware; o HIVM faz o mapeamento para...
Resposta de pesquisa

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
O AscendNPU IR não é uma nova linguagem de programação para o usuário final. Ele funciona como a base de compilação aberta sob o compilador BiSheng — uma camada intermediária que pode receber código de Triton, TileLang e diferentes representações de frameworks antes de transformá-lo em instruções para processadores Ascend. 3
7
A proposta foi apresentada por Hai Lijuan, arquiteta do AscendNPU IR na Huawei, durante o 9º Meet AI Compiler, evento técnico realizado em 1º de agosto de 2026, em Zhongguancun, Pequim. 3
7
Na prática, o projeto tenta separar duas tarefas que costumam ficar misturadas: a forma como o desenvolvedor descreve um operador e o trabalho de adaptar esse operador a uma arquitetura específica, com suas memórias, unidades de cálculo, transferências de dados e mecanismos de sincronização.
Construído sobre o MLIR — sigla de Multi-Level Intermediate Representation, uma infraestrutura para representar e transformar programas em diferentes níveis de abstração —, o AscendNPU IR é voltado à compilação de operadores para processadores Ascend. 4
11
Sua arquitetura oferece interfaces de alto nível, que escondem detalhes de instruções e sincronização, e interfaces de baixo nível, que permitem controlar com maior precisão a localização dos dados na memória on-chip e o comportamento dos pipelines. 4
11
Há mais de uma porta de entrada para a pilha:
O fluxo simplificado é este:
Triton, TileLang ou IR de frameworks
↓
AscendNPU IR baseado em MLIR
↓
Conversão de HFusion para HIVM
↓
Instruções e binário para o dispositivo Ascend
Na documentação do projeto, o comando bishengir-compile transforma o MLIR em um objeto para o dispositivo. Esse objeto pode ser registrado e executado por meio do runtime do CANN, a plataforma de software da Ascend. 6
Um tile é um bloco administrável de dados e computação. Em vez de exigir que cada front end descreva individualmente todas as transferências, decisões de memória, barreiras de sincronização e instruções do hardware, o AscendNPU IR oferece uma representação comum orientada a tiles.
Essa abordagem funciona em camadas. Nos níveis mais altos, o desenvolvedor pode expressar operações sobre tensores sem definir cada detalhe do processador. Nos níveis inferiores, o compilador pode inferir ou expor a distribuição dos dados entre GM, UB, L1 e L0, além do uso dos recursos Vector, Cube e de movimentação de dados. 5
22
O resultado é um compromisso entre portabilidade e ajuste fino. Um operador escrito em Triton ou originado em um framework pode seguir para a mesma base de compilação, enquanto um código sensível a desempenho pode descer até uma representação mais próxima do hardware.
A documentação de arquitetura descreve esse desenho como um conjunto de abstrações desacopladas que modela progressivamente as instruções Ascend, os recursos dentro de cada núcleo, os recursos entre núcleos e os recursos do sistema em chip. 11
O HFusion é a camada relativamente independente do hardware no modelo de duas camadas. Ele representa operações de tensor em um nível mais alto e executa transformações como fusão, bufferization, divisão em tiles e escalonamento antes que a compilação defina instruções específicas. 11
22
É nessa etapa que várias operações podem ser combinadas e que uma computação maior pode ser dividida em blocos adequados ao modelo de execução. A meta é preservar a semântica de alto nível enquanto o código é preparado para a conversão específica do Ascend.
O HIVM é a camada orientada ao hardware. Ele converte expressões em tiles para operações que refletem as unidades de execução, a hierarquia de armazenamento e os pipelines do Ascend. Entre suas responsabilidades estão:
Essa divisão permite que o compilador otimize a duas distâncias do hardware. O HFusion avalia a estrutura mais ampla dos tensores e as oportunidades de fusão; o HIVM decide como os tiles ocuparão memórias, unidades de cálculo e canais de comunicação.
A separação entre HFusion e HIVM permanece, mas a camada dependente do hardware passa a lidar com mais do que o caminho SIMD baseado em memória das gerações anteriores. O material voltado ao Ascend 950 descreve suporte a SIMD baseado em registradores e a SIMT, além do modelo de execução já existente. 2
Nesse modelo, os dados são carregados da memória on-chip para registradores, processados ali e depois gravados de volta. Quando o operador permite, a fusão em nível de registrador mantém valores intermediários nos próprios registradores, reduzindo cargas e gravações repetidas. 2
O SIMT oferece outra alternativa para trechos com acesso irregular ou divergente. A abordagem descrita separa as partes que se beneficiam de SIMT das regiões densas e mais adequadas ao SIMD, aplica a transformação correspondente a cada uma e depois recompõe o resultado na computação vetorial mais ampla. 2
A apresentação também destacou uma mudança na interação entre Cube e Vector. Em determinados fluxos A2/A3, algumas transferências entre os dois tipos de processamento passam pela memória global. No Ascend 950, o caminho descrito pode transportar resultados do Cube de L0C para a memória on-chip do Vector e devolver resultados do Vector à memória do Cube, encurtando a distância entre os domínios de execução. 2
Isso é relevante para operadores em que uma etapa matricial no Cube é seguida por processamento vetorial. O compilador ainda precisa determinar onde os tensores estão e em que momento as transferências são necessárias — especialmente quando as operações Cube e Vector aparecem em diferentes ramificações do fluxo de controle.
Alguns passes nomeados mostram como o AscendNPU IR converte a abstração em decisões concretas de memória e escalonamento.
InsertCVLoadStoreO fluxo aprimorado de InsertCVLoadStore analisa a comunicação entre Cube e Vector em fluxos de controle complexos, em vez de simplesmente inserir transferências por reconhecimento de padrões locais.
O processo estabelece pontos de referência para a localização dos dados — por exemplo, entradas matriciais em L1, saídas matriciais em L0C e dados vetoriais em UB. Em seguida, propaga essas restrições pelo programa e insere conversões ou cópias quando há conflito entre os domínios de memória. 2
No A2/A3, as travessias descritas podem usar operações de carga e armazenamento pela memória global. No Ascend 950, os caminhos on-chip podem ser utilizados quando houver suporte. 2
MultiBufferO MultiBuffer representa várias cópias de um tensor existente. Isso viabiliza o uso de buffers alternados, ou ping-pong buffering, e pode sobrepor movimentação de dados e computação quando o orçamento de memória e o escalonamento permitem. 17
18
AutoBlockify e DynamicCVPipelineAutoBlockify e DynamicCVPipeline estão entre os passes específicos do Ascend na pilha do compilador Triton-Ascend. Os nomes indicam duas tarefas centrais: dividir a computação em blocos executáveis e construir o comportamento do pipeline entre Cube e Vector. 19
A lista documentada também inclui planejamento automático de memória, sincronização, escalonamento e otimizações da interação Cube–Vector. 24
A apresentação descreveu uma relação de um núcleo Cube para dois núcleos Vector em uma configuração relevante do Ascend. O AutoSubTiling pode dividir o trabalho vetorial para que os dois núcleos processem partes separadas em paralelo. 2
14
A Huawei abriu o AscendNPU IR e o Triton-Ascend para desenvolvimento conjunto com a comunidade. O Triton-Ascend é a estrutura de compilação do Triton adaptada à plataforma Ascend: preserva a sintaxe central do Triton e acrescenta compilação e implantação específicas para produtos das séries A2, A3 e 950. 30
37
A abertura cria um caminho mais direto para quem deseja trabalhar em passes de compilação, integração de front ends, conversão de operadores ou otimização consciente do hardware sem precisar construir uma pilha inteira do zero.
O programa comunitário divulgado inclui estágios vinculados aos repositórios e tarefas com recompensa. Os desenvolvedores podem reivindicar as tarefas listadas e enviar o trabalho concluído de acordo com as regras do programa. 31
Quem não possui hardware Ascend local pode, segundo os relatos disponíveis, usar o HiDevLab, ambiente de computação em nuvem da comunidade Ascend, com 100 horas gratuitas de computação. As fontes confirmam a franquia, mas não detalham todas as condições de elegibilidade, verificação, validade ou disponibilidade regional. Esses termos devem ser conferidos no momento do cadastro. 31
A principal proposta do AscendNPU IR é arquitetural: permitir que diferentes entradas de compilação alcancem o hardware Ascend sem abrir mão de uma rota para ajustes detalhados de desempenho.
Triton, TileLang e IRs de frameworks entram nos níveis mais altos; o HFusion executa transformações amplas; e o HIVM converte os tiles em decisões sobre memória, núcleos, comunicação e pipelines necessárias para executar nos dispositivos Ascend. 5
11
O Ascend 950 amplia o espaço de otimização com SIMD baseado em registradores, SIMT e caminhos on-chip mais diretos entre Cube e Vector. Isso não garante, por si só, ganhos em todos os operadores: o resultado continua dependendo do formato da operação, da pressão sobre a memória, do fluxo de controle, da maturidade do compilador e do chip usado.
O código aberto, porém, torna essas escolhas mais visíveis e oferece a desenvolvedores de compiladores e operadores uma forma de participar diretamente da evolução da pilha.
Studio Global AI
Esta página inclui uma resposta baseada na fonte que você pode continuar em Studio Global.
A Huawei abriu o código do AscendNPU IR, base de representação intermediária baseada em MLIR do compilador BiSheng, após uma apresentação de Hai Lijuan em 1º de agosto de 2026.
A Huawei abriu o código do AscendNPU IR, base de representação intermediária baseada em MLIR do compilador BiSheng, após uma apresentação de Hai Lijuan em 1º de agosto de 2026. O HFusion concentra fusão, divisão em tiles e escalonamento em um nível relativamente independente do hardware; o HIVM faz o mapeamento para núcleos Cube e Vector, memórias locais, pipelines e instruções.
No Ascend 950, a pilha passa a contemplar SIMD baseado em registradores, SIMT e comunicação mais direta entre Cube e Vector dentro da memória on chip.