昇腾社区首页
中文
注册
CANN全面开放,解锁创新范式,定义智能未来

CANN全面开放,解锁创新范式,定义智能未来

昇腾CANNAscend C算子开发

发表于 2025/05/27

        CANN(Compute Architecture for Neural Networks)作为昇腾AI的核心基础软件平台,搭起了AI框架与昇腾硬件的桥梁,始终以“使能每一位创新者”为目标,坚持深度开放策略,持续技术创新,释放硬件极致潜能,推动AI开发效率与性能的双重突破。
        随着AI技术的高速发展,创新已成为当下主旋律。CANN开放内容也在持续升级。从上层应用开发到底层硬件能力抽象,从开箱即用到支持创新魔改,并且加大生态投入,兼容业界生态,满足各类开发者基于CANN的创新诉求,真正实现“效率与性能兼得”的开发体验升级。        

        开源Ascend C算子编程语言及算子加速库,降低开发门槛:

        在算子开发上,CANN提供了面向算子开发场景的昇腾Ascend C编程语言,通过多层接口抽象来满足不同开发者对高性能算子的开发诉求。提供基于硬件指令抽象的170+基础API,开放更加底层编程能力,以满足完备硬件能力的表达,支持开发者通过各种细粒度优化实现极致性能,比如直接构建LocalTensor对象的能力,开发者可自行对内存分配、同步和DB流水的控制来充分发挥处理器性能。同时在Gitee社区开源上线了80+高阶API,包含数学库、Matmul、Softmax等13类API,可大幅提升算子开发效率,例如基于新增开放卷积类与HCCL通信高层API,开发者可快速实现卷积类与通算融合类算子,满足开发者的自定义扩展需求。同时,在Gitee社区上提供了264个基础算子,26个融合算子优秀实践,例如FlashAttention、Matmul等典型算子,开发者可以匹配对应业务场景进行魔改,有基础的开发和创新。当前,已使能互联网、运营商、国计民生等30余家客户/伙伴开发260+核心算子,整网性能平均提升超10%。

        全新CATLASS算子模板库,算子开发效率倍增:

        CANN正式发布并在Gitee上算子模板库CATLASS,进一步加速高性能算子开发效率。CATLASS按照计算粒度自上而下分层设计。Device层是算子在CPU端的调用接口,提供完整算子能力;Kernel层则体现算子在NPU上的完整实现,涉及多个计算核的并行计算;进一步拆解到Block层,里面包含单个AI核的计算过程;Tile层则由数据搬入、数据计算、数据搬出等步骤组成,可通过最底层的指令组装实现。从调用接口到单条指令,提供可直接复用的参考模板及典型算子样例,开发者可以基于不同层级模板灵活组合,快速组装完成算子开发。以Matmul算子为例,基于模板库开发,开发周期从4人周缩减至2人周。同时还可以通过调整接口参数,自定义优化算子切分策略,实现算子性能最优。

        开源集合通信算法,满足差异化通信算法创新:

        在通信方面,CANN提供了丰富的高性能算法,例如RING/ Mesh/ NB2.0等。其中,NB 2.0算法是专为昇腾超节点打造的创新算法,通过多链路并发和分级流量控制优化跨节点通信性能。其核心创新包括:AnyPath算法利用双物理环架构动态调度SIO/HCCS/RDMA链路,结合流量最优切分策略提升聚合带宽利用率;AHC算法采用非对称层次化拼接架构,突破Broken Ring瓶颈。在高负载及非对称通信场景下,相比传统算法性能提升20%+。

        开放AscendNPU IR,兼容业界生态:

        CANN开放毕昇编译器的AscendNPU IR接口,满足开发者灵活定制的需求,联合智源人工智能研究院等伙伴,实现了无感对接Triton、FlagTree等Python算子编程框架,减少适配成本。开发者还可以基于开放的更细粒度的接口能力,创新打造属于自己的编程框架。

        开放底层原子能力,释放极致性能:

        CANN深度开放底层190+runtime运行时接口,通过原子级能力调度,灵活组合,挖掘更极致的硬件性能。开放后,开发者可以基于多个层次接入使用aclGraph等接口基础能力:
        1)基于ACL开放的C语言接口直接使用,
        2)基于原始的 torch.npu.NPUGraph的torch api,
        3)基于torch.npu.graph和torch.npu.make_graphed_callables封装,
        4)基于torchair,
        不同的接入方式逐步封装更多实现,开发者可灵活调用,大幅提升了优化效率。

    开放核心资产汇总:    

    当前在昇腾社区及Gitee上,为开发者提供了丰富的资产,满足创新诉求。

            昇腾CANN社区:https://www.hiascend.com/software/cann
            Gitee社区:
                算子开发:
                    Sample仓: https://gitee.com/ascend/samples
                    高层API (ascendc-api-adv):https://gitee.com/ascend/ascendc-api-adv
                    算子模板库:https://gitee.com/ascend/catlass
                算子加速库:
                    基础算子(cann-ops): https://gitee.com/ascend/cann-ops
                    融合算子( cann-ops-adv ):https://gitee.com/ascend/cann-ops-adv
                集合通信库:
                    HCCL集合通信库(cann-hccl):https://gitee.com/ascend/cann-hccl

        CANN始终致力于使能每一位创新者,目前深度贡献的开发者已经突破6000多人。在操作系统、算子算法、整图优化及加速库等各个层面,持续创新。未来CANN将以更开放的姿态共建AI新生态。