- Ascend C异构并行程序设计:昇腾算子编程指南
- 苏统华 杜鹏 闫长江编著
- 1560字
- 2025-04-17 18:49:59
前言
人工智能是一门研究、制造智能机器或智能系统,并实现模拟、延伸和扩展人类智能的学科。“人工智能”这一术语是在1956年举办的为期2个月的达特茅斯会议上提出的。会上,约翰·麦卡锡(John McCarthy)、马文·明斯基(Marvin Minsky)、克劳德·香农(Claude Shannon)和纳撒尼尔·罗切斯特(Nathaniel Rochester)等10位倡导者不遗余力地推进“从理论上精确描述学习的内涵或者智能的其他特性,达到制造一台机器来模拟它”的提议,这被誉为人工智能学科的开端。人工智能从此带着使命和活力步入人类世界,开辟了一片崭新的科学天地。
虽然人工智能的发展并非一帆风顺,甚至几经跌宕,但不曾中断。进入 21 世纪,随着异构计算芯片的成熟,基于大数据的深度学习方法在计算机视觉领域中屡创佳绩,明显超越人类专家。2016年,AlphaGo 战胜围棋世界冠军李世石,进一步推动了强化学习在游戏、具身智能等领域的发展。2020年,AlphaFold 2在第14届蛋白质结构预测大赛(CASP14)中,展示了前所未有的预测精度,远超其他方法,掀起了AI for Science热潮。2023年,以ChatGPT为代表的大语言模型,在自然语言理解与生成、知识整合与检索、文本翻译、创意写作等领域达到了令人惊叹的水平,标志着人工智能技术的发展到达了一个高峰。
华为公司为深度学习量身打造了“达·芬奇(Da Vinci)架构”,并基于该架构在2018年推出了昇腾(Ascend)AI处理器,开启了人工智能之旅。面向计算机视觉、自然语言处理、推荐系统、类机器人等领域,昇腾AI处理器致力于打造云端一体化的全栈式、全场景解决方案。2023年5月,为了释放昇腾AI处理器的性能,华为继推出昇腾异构计算架构(Compute Architecture for Neural Networks,CANN)后,又发布了面向算子开发场景的昇腾编程语言(Ascend C)。Ascend C原生支持C和C++语言的标准规范,匹配用户开发习惯,并提供了一组高度封装的高性能类库接口供开发者拼装算子核心逻辑。Ascend C 将核函数编程模型结构化为搬入、计算、搬出3个阶段,并通过极简的开发逻辑,实现自动的流水线任务并行调度,将算子执行性能最大化。另外,Ascend C支持Host与Device混合编程,让开发者可以在Host应用程序中轻松实现分别在CPU与NPU上运行算子代码;提供了算子孪生调试能力,让开发者既可以在CPU上通过业界标准C++工具GDB单步调试,也可以在NPU上通过上板调试。CPU和NPU相结合的调试方式大大提升了Ascend C算子调试和调优的效率。
本书围绕Ascend C展开论述。第1章介绍华为面向人工智能的昇腾AI处理器软硬件架构,包括Atlas硬件计算平台、达·芬奇架构、昇腾异构计算架构等。第2章是Ascend C快速入门,包括并行计算的基本原理、Ascend C开发环境准备、Ascend C算子的开发调用等。第3章详细介绍Ascend C编程模型与编程范式,并展示几个使用Ascend C完成的深度学习实用算子样例。第4章介绍Ascend C算子开发流程,此外还包括算子工程的编译部署、PyTorch算子调用以及如何在整网中替换Ascend C算子等。第5章介绍Ascend C算子调试调优。第6章面向Ascend C大模型算子优化,介绍目前业界流行的自注意力算子和基于Ascend C的实现方法。
本书在编写过程中得到了多方面的帮助,在此表示感谢!本书编写团队成员还包括哈尔滨工业大学的李行、陈潇凯、陈庚天、李松泽等,他们在内容选材、制作实践案例上做出了重要贡献。本书的出版得到华为公司的大力支持,王海彬组织了Ascend C技术专家团队全程支持,傅涛作为技术对接人提供了丰富的素材,董雪峰、李晨吉、黄金华、李东峰、王凯等技术专家提出了很多宝贵的修改意见。本书在外审及试读阶段得到西安交通大学李阳老师,浙江大学唐敏老师,浙江大学吴月锋、俞子轩、陈威3位同学,哈尔滨工业大学谭济卓等同学的宝贵意见。本书得到国家自然科学基金项目(62277011)、黑龙江省高等教育教学改革研究重点委托项目(SJGZ20220011)及哈尔滨工业大学新形态教材项目等科研、教学项目的资助。
由于水平和时间所限,书中难免存在疏漏和不足之处,恳请读者指正,可发送邮件至dengyuzhou@ptpress.com.cn。

扫码观看视频
本书配套PPT和代码资源请用PC浏览器登录https://box.lenovo.com/l/8uf9SX下载。读者请发邮件至thsu@hit.edu.cn索取测验题答案。