十天成长计划·算子挑战班 学习记录
收藏回复举报
十天成长计划·算子挑战班 学习记录
发表于2024-07-15 18:03:20
0 查看

十天成长计划·算子挑战班 学习笔记

  1. 学习动机:
    1. 学校里面举行华为讲座,了解到了昇腾相关的知识,对此产生了浓厚的兴趣,在看到这个十天成长计划算子挑战班后,发现十分适合我,正好在学习算子相关知识,也想有顺序的学习知识,然后加入其中跟随学习。
  2. 学习过程:
    1. 首先听了两天音频,音频介绍了昇腾和CANN异构计算架构的相关知识,让我们对其有了整体的了解,知道了CANN的功能,组成和作用,对于后面学习算子开发有了前置知识基础
    2. 第三天学习CANN的架构知识,是前两天所学的回顾与拓展,更加仔细的介绍了CANN架构,对于CANN有了更多的了解
    3. 第四天学习了模型训练和调优,介绍了HCCL集合通信库的相关知识,让我们知道了CANN如何发挥作用在训练过程中的
    4. 第五天学习算子开发的概述,介绍了Ascend C编程的相关知识,和AIcore内部的结构,对于算子开发的理解更加清晰一些
    5. 第六天学习了推理应用的开发流程,涵盖了模型压缩,编译优化以及开发部署过程,让我们学习了应用开发的流程,对于后面进行算子开发有了引导作用,同时还学习了CANN生态建设方面的情况,现在与多方合作,建立了丰富的社区资源,同时举办多样化的开发者活动,这些可以看出CANN现在具有蓬勃的生命力,正在飞速发展成长,吸引了很多开发者的加入,前程似锦
    6. 第七天首先回顾了之前所学的Ascend C的特性,然后介绍了CANN的三大能力:应用开发,模型开发,算子开发,并且详细介绍了CANN的每个层的组成与作用,最后回顾了AI core和SPMD和流水线并行的知识
    7. 第八天开始更加详细的学习算子开发相关知识,这一天学习了Ascend C编程模型与范式,介绍了AIcore,SPMD还有核函数的编写与调用的相关代码
    8. 第九天学习了Ascend C算子的编程库API,主要包括:计算类api,数据搬运API,内存管理API,同步API,然后还学习了流水编程范式,以提高运行效率
    9. 第十天进入Ascend C矢量编程模块,首先学习了算子开发的流程,然后是算子的实现,包括了核函数定义,算子类实现,Init()函数实现,Process()函数实现,Double Buffer机制,包含了许多代码,需要实践结合来学习
    10. 第十一天开始进行样例学习,首先学习了Helloworld样例还有Addcustom样例,其中知道了运行的代码细节,详细介绍了矢量编程的文件和代码知识,对于之前所学的知识是一个综合应用,检查了所学知识是否牢固
    11. 第十二天进行了模块小测和实例代码讲解学习,在小测中发现自己对于一些知识点还不太清楚,及时进行解决,实例代码的讲解将知识串联起来,让我们对于应用有了整体的理解
    12. 第十三天考取了Ascend C算子开发能力初级认证,在考试过程中发现了自己的不足,对知识掌握不够牢固,在仔细复习后重新考取才通过
  3. 学习总结:
    1. 这一次的学习让我对算子开发了有了初步的了解,收益颇丰,这个学习顺序对于我这种新手来说十分友好,循序渐进,每天的负担不会很重,学习过程中既有回顾也有学习还有实践,互相配合,同时学习群里面的助教老师也是十分热情,耐心的解答同学们的问题,学习氛围良好,在这次学习中,我知道了要在学习中实践,在实践中学习,光学不练不能很好的发现自己对知识掌握的问题,同时要有耐心,坚持下来总会有成果的,最后希望这种学习班越办越好,CANN前景无限

本帖最后由 匿名用户2025/04/01 18:47:59 编辑

我要发帖子