Huawei a présenté puis ouvert AscendNPU IR, le socle de compilation fondé sur MLIR du compilateur BiSheng, lors du 9e salon technique Meet AI Compiler, le 1er août 2026. HFusion prend en charge les optimisations relativement indépendantes du matériel, comme la fusion, le tiling et l'ordonnancement, tandis qu'HIVM ré...
Publié parModifié avec GPT-5.6 LunaImages générées avec GPT Image 1.5
Réponse de recherche

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
Présenté par Hai Lijuan, architecte d'AscendNPU IR, lors du 9e salon technique Meet AI Compiler organisé à Zhongguancun, à Pékin, le 1er août 2026, AscendNPU IR se veut le socle de compilation ouvert situé sous le compilateur BiSheng. 3
7
Il ne s'agit pas d'un nouveau langage destiné directement aux développeurs. Son rôle est plutôt de servir de représentation intermédiaire commune entre des langages et écosystèmes d'opérateurs — notamment Triton et TileLang — et les détails d'exécution des processeurs Ascend.
L'enjeu est très concret : éviter que chaque langage frontal doive gérer séparément le découpage des calculs en tuiles (tiles), les transferts de données, les niveaux de mémoire sur puce, la synchronisation entre unités de calcul et la génération des instructions propres au matériel.
AscendNPU IR est une représentation intermédiaire fondée sur MLIR (Multi-Level Intermediate Representation), conçue pour compiler des opérateurs destinés aux processeurs Ascend. Elle propose plusieurs niveaux d'abstraction : les interfaces de haut niveau masquent une partie des détails liés aux instructions et à la synchronisation, tandis que les interfaces plus basses permettent de contrôler finement le placement mémoire et le comportement des pipelines. 4
11
La pile peut être alimentée de plusieurs façons. Des DSL comme Triton et TileLang peuvent être abaissés vers AscendNPU IR. Les frameworks et chaînes de compilation peuvent également passer par Torch IR, Linalg/HFusion IR ou HIVM IR. Les niveaux supérieurs peuvent automatiser la fusion, le découpage en tuiles et l'ordonnancement ; HIVM offre, lui, un contrôle plus direct sur les niveaux de stockage et les pipelines de calcul Ascend. 5
22
Le cheminement peut être résumé ainsi :
Triton, TileLang ou IR d'un framework
↓
AscendNPU IR fondé sur MLIR
↓
Abaissement HFusion → HIVM
↓
Instructions et binaire Ascend
La documentation indique que bishengir-compile transforme un fichier MLIR en objet exécutable côté appareil. Celui-ci peut ensuite être enregistré et lancé via les interfaces runtime de CANN, la pile logicielle d'Ascend. 6
Une tuile est un bloc de données et de calcul suffisamment petit pour être géré efficacement par le processeur. Sans abstraction commune, chaque langage frontal devrait décrire séparément les transferts, les points de synchronisation, le choix du niveau de mémoire et les instructions matérielles correspondant à chaque opération.
AscendNPU IR regroupe ces décisions dans une représentation orientée tuiles. Les développeurs peuvent donc décrire des opérations tensorielles à un niveau relativement lisible, puis laisser le compilateur déterminer — ou affiner — leur placement dans la mémoire globale et les mémoires locales telles que GM, UB, L1 et L0. La pile prend également en compte les ressources Vector, Cube et MTE dédiées respectivement au calcul vectoriel, au calcul matriciel et aux mouvements de données. 5
22
Cette organisation cherche un équilibre entre portabilité et optimisation. Un opérateur écrit en Triton ou issu d'un framework peut viser le même socle de compilation, tandis que les cas exigeant un réglage précis peuvent descendre vers une représentation plus proche du matériel.
L'architecture officielle décrit une série d'abstractions découplées qui modélisent progressivement les instructions Ascend, les ressources à l'intérieur d'un cœur, les échanges entre cœurs et les ressources du système sur puce. 11
HFusion est la couche relativement indépendante du matériel. Elle représente les opérations tensorielles à un niveau élevé et prend en charge des transformations comme la fusion d'opérations, la bufferisation, le tiling et l'ordonnancement avant le choix détaillé des instructions matérielles. 11
22
C'est à ce stade que plusieurs opérations peuvent être regroupées et qu'un calcul plus vaste peut être divisé en tuiles adaptées au modèle d'exécution ciblé. L'objectif est de préserver la sémantique du calcul tout en préparant son abaissement vers les mécanismes propres à Ascend.
HIVM est la couche qui tient compte des caractéristiques concrètes du NPU. Elle transforme les expressions de tuiles en opérations reflétant les unités d'exécution, la hiérarchie mémoire et le comportement des pipelines Ascend.
Ses responsabilités comprennent notamment :
Cette séparation permet d'optimiser le programme à deux distances du matériel. HFusion raisonne sur la structure globale des tenseurs et les possibilités de fusion, tandis qu'HIVM détermine les ressources mémoire et d'exécution nécessaires pour les tuiles produites.
La séparation HFusion/HIVM reste en place, mais la couche matérielle doit désormais couvrir davantage que le chemin SIMD fondé sur la mémoire. Les éléments consacrés à l'Ascend 950 décrivent la prise en charge du SIMD fondé sur les registres et du SIMT, en complément du modèle d'exécution existant. 2
Dans ce mode, les données sont chargées depuis la mémoire sur puce vers des registres, traitées dans ceux-ci, puis réécrites. Lorsque le calcul s'y prête, une fusion au niveau des registres permet de conserver des résultats intermédiaires sur place et de réduire les chargements et stockages répétés. 2
Le SIMT offre une autre voie pour certaines parties d'opérateurs caractérisées par des accès irréguliers ou des divergences d'exécution. Le compilateur peut distinguer les portions qui profitent du SIMT des calculs denses adaptés au SIMD, appliquer la transformation appropriée à chacune, puis réunir les résultats dans le calcul vectoriel global. 2
La présentation a également mis en avant une évolution des communications entre Cube et Vector. Dans certains flux A2/A3, les échanges passaient par la mémoire globale. Sur l'Ascend 950, le chemin décrit peut transférer les résultats Cube de L0C vers une mémoire Vector sur puce, puis renvoyer les résultats Vector vers la mémoire Cube, ce qui raccourcit la distance entre les deux domaines d'exécution. 2
Cette évolution est particulièrement pertinente pour les opérateurs dans lesquels un calcul matriciel sur Cube est suivi d'un traitement vectoriel. Le compilateur doit toutefois déterminer précisément où se trouvent les tenseurs et quand les transferts sont nécessaires, notamment lorsque les opérations Cube et Vector apparaissent dans des branches différentes du flot de contrôle.
Plusieurs passes nommées montrent comment AscendNPU IR transforme cette abstraction en décisions concrètes d'ordonnancement et de placement mémoire.
InsertCVLoadStoreLa version renforcée de InsertCVLoadStore analyse les communications Cube–Vector à travers des flots de contrôle complexes. Elle ne se contente donc pas d'insérer des transferts à partir de motifs locaux simples.
Le processus commence par l'établissement d'ancrages de placement mémoire : par exemple, les entrées d'une multiplication matricielle dans L1, ses sorties dans L0C et les données vectorielles dans UB. Ces contraintes sont ensuite propagées dans le programme. Lorsque deux domaines mémoire sont incompatibles, le compilateur insère les conversions ou copies nécessaires. 2
Sur A2/A3, les traversées décrites peuvent s'appuyer sur des opérations de chargement et de stockage en mémoire globale. L'Ascend 950 peut utiliser les chemins plus courts sur puce lorsqu'ils sont disponibles. 2
MultiBufferMultiBuffer représente plusieurs copies d'un tenseur existant. Cette technique permet notamment de mettre en place un tampon ping-pong et de superposer les transferts de données et le calcul lorsque le budget mémoire et l'ordonnancement l'autorisent. 17
18
AutoBlockify et DynamicCVPipelineAutoBlockify et DynamicCVPipeline font partie des passes propres à Ascend dans la pile de compilation Triton-Ascend. Leurs noms renvoient à deux tâches centrales : découper automatiquement le calcul en blocs exécutables et construire le comportement du pipeline Cube–Vector. 19
La liste des fonctionnalités documentées comprend également la planification automatique de la mémoire, la synchronisation, l'ordonnancement ainsi que plusieurs optimisations Cube–Vector. 24
La présentation décrit une configuration dans laquelle un cœur Cube est associé à deux cœurs Vector. AutoSubTiling peut alors diviser le travail vectoriel afin que les deux cœurs Vector traitent simultanément des portions distinctes du calcul. 2
14
Huawei a ouvert AscendNPU IR en même temps que Triton-Ascend afin de permettre une co-construction avec la communauté. Triton-Ascend est la chaîne de compilation Triton adaptée à la plateforme Ascend : elle conserve la syntaxe centrale de Triton tout en ajoutant la compilation et le déploiement propres aux produits Ascend A2, A3 et aux séries 950. 30
37
Cette ouverture fournit un point d'entrée plus direct aux développeurs qui souhaitent travailler sur des passes de compilation, l'intégration de frontends, l'abaissement d'opérateurs ou les optimisations tenant compte du matériel, sans devoir reconstruire seuls toute la chaîne de compilation.
Le programme communautaire présenté comprend des stages liés aux dépôts et des tâches rémunérées. Les développeurs peuvent sélectionner une tâche proposée, la revendiquer, puis soumettre leur travail selon les règles du programme. 31
Pour les personnes ne disposant pas d'un matériel Ascend local, la communauté indique que l'environnement cloud HiDevLab permet d'obtenir 100 heures de calcul gratuites. Les informations disponibles confirment cette allocation, mais ne précisent pas toutes les conditions d'éligibilité, de vérification, d'expiration ou de disponibilité régionale. Ces modalités doivent donc être vérifiées lors de l'inscription. 31
La proposition centrale d'AscendNPU IR est architecturale : offrir des points d'accès communs aux compilateurs pour rendre le matériel Ascend plus accessible, tout en conservant une voie vers l'optimisation fine.
Triton, TileLang et les IR de frameworks peuvent entrer par des niveaux d'abstraction élevés. HFusion prend alors en charge les transformations générales, tandis qu'HIVM abaisse les tuiles vers les décisions concrètes de mémoire, de mappage des cœurs, de communication et de pipeline nécessaires à l'exécution sur un NPU Ascend. 5
11
L'Ascend 950 élargit le potentiel d'optimisation avec le SIMD fondé sur les registres, le SIMT et des chemins Cube–Vector plus directs sur puce. Les performances réelles dépendront toutefois de la forme de l'opérateur, de la pression mémoire, du flot de contrôle, de la maturité du compilateur et de la puce ciblée.
L'intérêt de l'ouverture du code est précisément de rendre ces arbitrages plus visibles et de permettre aux développeurs de compilateurs et d'opérateurs de contribuer à leur amélioration.
Studio Global AI
Cette page comprend une réponse basée sur la source que vous pouvez continuer dans Studio Global.
Huawei a présenté puis ouvert AscendNPU IR, le socle de compilation fondé sur MLIR du compilateur BiSheng, lors du 9e salon technique Meet AI Compiler, le 1er août 2026.
Huawei a présenté puis ouvert AscendNPU IR, le socle de compilation fondé sur MLIR du compilateur BiSheng, lors du 9e salon technique Meet AI Compiler, le 1er août 2026. HFusion prend en charge les optimisations relativement indépendantes du matériel, comme la fusion, le tiling et l'ordonnancement, tandis qu'HIVM réalise le mappage vers les cœurs Cube et Vector, la mémoire locale et l...
Avec l'Ascend 950, la pile ajoute notamment le SIMD fondé sur les registres, le SIMT et des échanges Cube–Vector plus directs dans la mémoire sur puce.
Huawei a présenté puis ouvert AscendNPU IR, le socle de compilation fondé sur MLIR du compilateur BiSheng, lors du 9e salon technique Meet AI Compiler, le 1er août 2026. HFusion prend en charge les optimisations relativement indépendantes du matériel, comme la fusion, le tiling et l'ordonnancement, tandis qu'HIVM ré...
Publié parModifié avec GPT-5.6 LunaImages générées avec GPT Image 1.5
Réponse de recherche

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
Présenté par Hai Lijuan, architecte d'AscendNPU IR, lors du 9e salon technique Meet AI Compiler organisé à Zhongguancun, à Pékin, le 1er août 2026, AscendNPU IR se veut le socle de compilation ouvert situé sous le compilateur BiSheng. 3
7
Il ne s'agit pas d'un nouveau langage destiné directement aux développeurs. Son rôle est plutôt de servir de représentation intermédiaire commune entre des langages et écosystèmes d'opérateurs — notamment Triton et TileLang — et les détails d'exécution des processeurs Ascend.
L'enjeu est très concret : éviter que chaque langage frontal doive gérer séparément le découpage des calculs en tuiles (tiles), les transferts de données, les niveaux de mémoire sur puce, la synchronisation entre unités de calcul et la génération des instructions propres au matériel.
AscendNPU IR est une représentation intermédiaire fondée sur MLIR (Multi-Level Intermediate Representation), conçue pour compiler des opérateurs destinés aux processeurs Ascend. Elle propose plusieurs niveaux d'abstraction : les interfaces de haut niveau masquent une partie des détails liés aux instructions et à la synchronisation, tandis que les interfaces plus basses permettent de contrôler finement le placement mémoire et le comportement des pipelines. 4
11
La pile peut être alimentée de plusieurs façons. Des DSL comme Triton et TileLang peuvent être abaissés vers AscendNPU IR. Les frameworks et chaînes de compilation peuvent également passer par Torch IR, Linalg/HFusion IR ou HIVM IR. Les niveaux supérieurs peuvent automatiser la fusion, le découpage en tuiles et l'ordonnancement ; HIVM offre, lui, un contrôle plus direct sur les niveaux de stockage et les pipelines de calcul Ascend. 5
22
Le cheminement peut être résumé ainsi :
Triton, TileLang ou IR d'un framework
↓
AscendNPU IR fondé sur MLIR
↓
Abaissement HFusion → HIVM
↓
Instructions et binaire Ascend
La documentation indique que bishengir-compile transforme un fichier MLIR en objet exécutable côté appareil. Celui-ci peut ensuite être enregistré et lancé via les interfaces runtime de CANN, la pile logicielle d'Ascend. 6
Une tuile est un bloc de données et de calcul suffisamment petit pour être géré efficacement par le processeur. Sans abstraction commune, chaque langage frontal devrait décrire séparément les transferts, les points de synchronisation, le choix du niveau de mémoire et les instructions matérielles correspondant à chaque opération.
AscendNPU IR regroupe ces décisions dans une représentation orientée tuiles. Les développeurs peuvent donc décrire des opérations tensorielles à un niveau relativement lisible, puis laisser le compilateur déterminer — ou affiner — leur placement dans la mémoire globale et les mémoires locales telles que GM, UB, L1 et L0. La pile prend également en compte les ressources Vector, Cube et MTE dédiées respectivement au calcul vectoriel, au calcul matriciel et aux mouvements de données. 5
22
Cette organisation cherche un équilibre entre portabilité et optimisation. Un opérateur écrit en Triton ou issu d'un framework peut viser le même socle de compilation, tandis que les cas exigeant un réglage précis peuvent descendre vers une représentation plus proche du matériel.
L'architecture officielle décrit une série d'abstractions découplées qui modélisent progressivement les instructions Ascend, les ressources à l'intérieur d'un cœur, les échanges entre cœurs et les ressources du système sur puce. 11
HFusion est la couche relativement indépendante du matériel. Elle représente les opérations tensorielles à un niveau élevé et prend en charge des transformations comme la fusion d'opérations, la bufferisation, le tiling et l'ordonnancement avant le choix détaillé des instructions matérielles. 11
22
C'est à ce stade que plusieurs opérations peuvent être regroupées et qu'un calcul plus vaste peut être divisé en tuiles adaptées au modèle d'exécution ciblé. L'objectif est de préserver la sémantique du calcul tout en préparant son abaissement vers les mécanismes propres à Ascend.
HIVM est la couche qui tient compte des caractéristiques concrètes du NPU. Elle transforme les expressions de tuiles en opérations reflétant les unités d'exécution, la hiérarchie mémoire et le comportement des pipelines Ascend.
Ses responsabilités comprennent notamment :
Cette séparation permet d'optimiser le programme à deux distances du matériel. HFusion raisonne sur la structure globale des tenseurs et les possibilités de fusion, tandis qu'HIVM détermine les ressources mémoire et d'exécution nécessaires pour les tuiles produites.
La séparation HFusion/HIVM reste en place, mais la couche matérielle doit désormais couvrir davantage que le chemin SIMD fondé sur la mémoire. Les éléments consacrés à l'Ascend 950 décrivent la prise en charge du SIMD fondé sur les registres et du SIMT, en complément du modèle d'exécution existant. 2
Dans ce mode, les données sont chargées depuis la mémoire sur puce vers des registres, traitées dans ceux-ci, puis réécrites. Lorsque le calcul s'y prête, une fusion au niveau des registres permet de conserver des résultats intermédiaires sur place et de réduire les chargements et stockages répétés. 2
Le SIMT offre une autre voie pour certaines parties d'opérateurs caractérisées par des accès irréguliers ou des divergences d'exécution. Le compilateur peut distinguer les portions qui profitent du SIMT des calculs denses adaptés au SIMD, appliquer la transformation appropriée à chacune, puis réunir les résultats dans le calcul vectoriel global. 2
La présentation a également mis en avant une évolution des communications entre Cube et Vector. Dans certains flux A2/A3, les échanges passaient par la mémoire globale. Sur l'Ascend 950, le chemin décrit peut transférer les résultats Cube de L0C vers une mémoire Vector sur puce, puis renvoyer les résultats Vector vers la mémoire Cube, ce qui raccourcit la distance entre les deux domaines d'exécution. 2
Cette évolution est particulièrement pertinente pour les opérateurs dans lesquels un calcul matriciel sur Cube est suivi d'un traitement vectoriel. Le compilateur doit toutefois déterminer précisément où se trouvent les tenseurs et quand les transferts sont nécessaires, notamment lorsque les opérations Cube et Vector apparaissent dans des branches différentes du flot de contrôle.
Plusieurs passes nommées montrent comment AscendNPU IR transforme cette abstraction en décisions concrètes d'ordonnancement et de placement mémoire.
InsertCVLoadStoreLa version renforcée de InsertCVLoadStore analyse les communications Cube–Vector à travers des flots de contrôle complexes. Elle ne se contente donc pas d'insérer des transferts à partir de motifs locaux simples.
Le processus commence par l'établissement d'ancrages de placement mémoire : par exemple, les entrées d'une multiplication matricielle dans L1, ses sorties dans L0C et les données vectorielles dans UB. Ces contraintes sont ensuite propagées dans le programme. Lorsque deux domaines mémoire sont incompatibles, le compilateur insère les conversions ou copies nécessaires. 2
Sur A2/A3, les traversées décrites peuvent s'appuyer sur des opérations de chargement et de stockage en mémoire globale. L'Ascend 950 peut utiliser les chemins plus courts sur puce lorsqu'ils sont disponibles. 2
MultiBufferMultiBuffer représente plusieurs copies d'un tenseur existant. Cette technique permet notamment de mettre en place un tampon ping-pong et de superposer les transferts de données et le calcul lorsque le budget mémoire et l'ordonnancement l'autorisent. 17
18
AutoBlockify et DynamicCVPipelineAutoBlockify et DynamicCVPipeline font partie des passes propres à Ascend dans la pile de compilation Triton-Ascend. Leurs noms renvoient à deux tâches centrales : découper automatiquement le calcul en blocs exécutables et construire le comportement du pipeline Cube–Vector. 19
La liste des fonctionnalités documentées comprend également la planification automatique de la mémoire, la synchronisation, l'ordonnancement ainsi que plusieurs optimisations Cube–Vector. 24
La présentation décrit une configuration dans laquelle un cœur Cube est associé à deux cœurs Vector. AutoSubTiling peut alors diviser le travail vectoriel afin que les deux cœurs Vector traitent simultanément des portions distinctes du calcul. 2
14
Huawei a ouvert AscendNPU IR en même temps que Triton-Ascend afin de permettre une co-construction avec la communauté. Triton-Ascend est la chaîne de compilation Triton adaptée à la plateforme Ascend : elle conserve la syntaxe centrale de Triton tout en ajoutant la compilation et le déploiement propres aux produits Ascend A2, A3 et aux séries 950. 30
37
Cette ouverture fournit un point d'entrée plus direct aux développeurs qui souhaitent travailler sur des passes de compilation, l'intégration de frontends, l'abaissement d'opérateurs ou les optimisations tenant compte du matériel, sans devoir reconstruire seuls toute la chaîne de compilation.
Le programme communautaire présenté comprend des stages liés aux dépôts et des tâches rémunérées. Les développeurs peuvent sélectionner une tâche proposée, la revendiquer, puis soumettre leur travail selon les règles du programme. 31
Pour les personnes ne disposant pas d'un matériel Ascend local, la communauté indique que l'environnement cloud HiDevLab permet d'obtenir 100 heures de calcul gratuites. Les informations disponibles confirment cette allocation, mais ne précisent pas toutes les conditions d'éligibilité, de vérification, d'expiration ou de disponibilité régionale. Ces modalités doivent donc être vérifiées lors de l'inscription. 31
La proposition centrale d'AscendNPU IR est architecturale : offrir des points d'accès communs aux compilateurs pour rendre le matériel Ascend plus accessible, tout en conservant une voie vers l'optimisation fine.
Triton, TileLang et les IR de frameworks peuvent entrer par des niveaux d'abstraction élevés. HFusion prend alors en charge les transformations générales, tandis qu'HIVM abaisse les tuiles vers les décisions concrètes de mémoire, de mappage des cœurs, de communication et de pipeline nécessaires à l'exécution sur un NPU Ascend. 5
11
L'Ascend 950 élargit le potentiel d'optimisation avec le SIMD fondé sur les registres, le SIMT et des chemins Cube–Vector plus directs sur puce. Les performances réelles dépendront toutefois de la forme de l'opérateur, de la pression mémoire, du flot de contrôle, de la maturité du compilateur et de la puce ciblée.
L'intérêt de l'ouverture du code est précisément de rendre ces arbitrages plus visibles et de permettre aux développeurs de compilateurs et d'opérateurs de contribuer à leur amélioration.
Studio Global AI
Cette page comprend une réponse basée sur la source que vous pouvez continuer dans Studio Global.
Huawei a présenté puis ouvert AscendNPU IR, le socle de compilation fondé sur MLIR du compilateur BiSheng, lors du 9e salon technique Meet AI Compiler, le 1er août 2026.
Huawei a présenté puis ouvert AscendNPU IR, le socle de compilation fondé sur MLIR du compilateur BiSheng, lors du 9e salon technique Meet AI Compiler, le 1er août 2026. HFusion prend en charge les optimisations relativement indépendantes du matériel, comme la fusion, le tiling et l'ordonnancement, tandis qu'HIVM réalise le mappage vers les cœurs Cube et Vector, la mémoire locale et l...
Avec l'Ascend 950, la pile ajoute notamment le SIMD fondé sur les registres, le SIMT et des échanges Cube–Vector plus directs dans la mémoire sur puce.