【2024第一期CANN训练营】Ascend C算子开发学习路径

    CANN(Compute Architecture for Neural Networks)是华为针对AI场景推出的异构计算架构。该架构上层支持多种AI框架,下层服务AI处理器与编程,发挥承上启下的关键作用,是提升昇腾AI处理器计算效率的关键平台。CANN的设计目标是与英伟达的CUDA竞争,提供便捷的开发环境,实现高效的计算性能。

    Ascend C是基于CANN架构,为算子开发场景设计的编程语言,原生支持C和C++标准规范。通过多层接口抽象、自动并行计算、孪生调试等关键技术,Ascend C能够帮助AI开发者以低成本完成算子开发和模型调优部署。Ascend C的开发方式与英伟达的CUDA C类似,但由于华为CANN相对较新,生态系统仍在建设中,因此初学者在学习初期可能会遇到一些困难,主要包括环境搭建和版本匹配等操作问题。

    由于CANN是异构计算架构,其程序开发与传统的C/C++编程存在一定差异,需要开发者了解硬件架构、内存管理和任务调度的概念。例如,开发者需要理解如何高效地利用AI Core处理器的计算单元、如何在异构环境下进行同步与通信、如何进行内存的高效分配与回收等。在掌握这些基础知识后,开发算子将变得更加容易。

 Ascend C开发步骤如下:

  1. 开发Ascend C的基础资料和硬件环境搭建:获取并熟悉Ascend C的基础文档,搭建所需的开发环境。

        在线课程->算子开发->Ascend C算子开发(入门);在gitee查看华为官方的AddCustomSample;下载产品->CANN->立即下载->社区版->Ascend-cann-toolkit_8.0.RC2.alpha003_linux-aarch64.run;文档->算子开发-快速入门(Ascend C);参加昇腾CANN训练营系统学习。在B站上也有各期训练营的录播可以学习。    建立硬件开发环境:最基础的开发只需要一台普通的个人电脑,安装ubuntu22就可以通过孪生调试的方式通过x86/arm架构的主机用实现算子开发,模拟npu实现基础的代码逻辑和精度调试;要体验实际的昇腾处理器如Ascend310B、Ascend910处理器,可以申请云上的算力、或购买Atlas 200I DK A2开发者套件、AIpro。云上算力推荐申请启智的免费算力,或参加CANN训练营向华为申请ModelArt代金券。    建立软件开发环境:如果采用个人电脑,需要自己安装操作系统的依赖包,python的依赖包,以及对应cpu架构的 Ascend-cann-toolkit_8.0.RC2.alpha003_linux-aarch64(x86_64).run。还需要安装cmake3.28.3。并配置环境变量。2. 通过add算子样例学习:从gitee的ascend/samples/tree/master/operator/AddCustomSample/KernelLaunch/AddKernelInvocation目录下载华为官方的add算子示例入手,学习Ascend C的基本开发流程。3. 使用昇腾NPU处理器运行add算子:在实际的昇腾NPU处理器上运行add算子,以验证其功能和性能。4. 性能分析:对add算子运行性能进行分析。5. 修改add算子实现sinh功能:在add算子的基础上,修改其实现,增加sinh函数的支持。6. 学习tiling:学习并理解tiling技术,以便优化算子的性能。7. 修改代码实现sinh功能并增加tiling:将tiling技术应用到sinh算子的实现中,进一步优化其性能。8. 使用msopgen建立算子工程并用API调用算子:使用msopgen工具建立完整的算子工程,并通过API调用该算子。9. 介绍Python适配:介绍如何在Python环境中适配和调用Ascend C开发的算子,使其能够更方便地与其他AI框架集成。    通过以上步骤,开发者可以逐步掌握Ascend C的开发流程,并学会如何高效地开发和优化算子。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值