一、教学理念
本课程采用“应用驱动,全栈贯通”的思想,以一个图像迁移风格的驱动范例带动,重点围绕智能计算系统的设计理论、方法、关键技术等展开讨论,从基本概念开始,由浅入深地帮助学生建立智能计算系统设计及应用的知识体系。
二、课程目的
本课程为专业课程,旨在培养学生对智能计算系统完整软硬件技术栈(包括基础智能算法、智能计算编程框架、智能计算编程语言、智能芯片体系结构等)融会贯通的理解。在掌握基础理论的同时,该课程的学习有助于培养学生形成系统能力以及系统思维。其中,系统能力可以帮助学术在就业市场中拥有更强的竞争力;系统思维,则对于学生科研能力有帮助。
三、面向对象
课程主要面向计算机、软件工程、人工智能、微电子、自动化等方向的高年级本科生与研究生。
四、教学方式
课程采用传统课堂授课与实验项目相结合的方式进行教学,结合各章节的重点或难点,设计相应的分阶段章节实验,循序渐进将软硬件栈的知识点都贯穿起来,使学生在实操过程中逐步加深对智能算法、编程语言、系统软件、体系结构、智能芯片运行环境等知识体系的理解,让学生做到学以致用、活学活用。
五、推荐学时
常规为38学时/2学分,课程内容可根据不同学校的教学安排做灵活调整,也可以16、20、32、40、60等学时方案开展教学。
六、前序课程
线性代数,概率论与数理统计,计算机组成原理等。
七、教学大纲
第一章:概述(2学时理论)
本章首先介绍人工智能的发展历史以及三类主要研究方法,其次介绍智能计算系统的发展历程并展望未来智能计算系统的发展,最后以一个驱动范例(图像风格迁移)简单介绍智能应用从智能算法设计到编程实现再到芯片上运行的过程。
1.1 人工智能
1.2 智能计算系统
1.3 驱动范例
1.4 本章小结
第二章:深度学习基础(4学时理论+课后实验)
本章从线性回归开始,逐步介绍机器学习和神经网络的基本原理,然后介绍神经网络的训练过程,以及一些提升神经网络精度的手段,最后介绍神经网络的交叉验证方法。同时,本章节需要完成在CPU和DLP上实现手写数字分类的实验。
2.1 机器学习
2.2 神经网络
2.3 神经网络训练方法
2.4 神经网络设计基础
2.5 过拟合与正则化
2.6 交叉验证
2.7 本章小结
章节实验:
1、基于三层神经网络实现手写数字分类
2、基于DLP平台实现手写数字分类
第三章:深度学习应用(8学时理论+课后实验)
本章首先介绍最基本的适合图像处理的卷积神经网络,并在此基础上介绍应用于图像分类和目标检测的代表性卷积神经网络。之后,本章将介绍如何利用神经网络自动生成新的图像,包括生成对抗网络和扩散模型,这些新算法也带来了许多有趣的应用。介绍了主要用卷积神经网络的图像处理应用,本章也会介绍用于语音、文字、视频等序列信息的循环神经网络及其改进版本——长短期记忆模型。随后,本章会介绍近年来比较热门的大模型技术,包括大模型的核心技术、以及将大模型应用于自然语言处理和图像处理的代表性新算法。在此基础上,本章将介绍用于训练深度神经网络的优化方法和降低深度神经网络计算复杂度和存储开销的量化技术。最后本章将具体介绍如何用深度学习实现图像风格迁移这一驱动范例。同时,本章需要完成基于VGG19实现图像分类、基于DLP平台实现图像分类、非实时图像风格迁移的章节实验。
3.1适合图像处理的卷积神经网络
3.2 适合文本/语音处理的循环神经网..
3.3 大模型
3.4 神经网络的优化
3.5 神经网络量化
3.6 驱动范例
3.7 本章小结
章节实验:
1、基于VGG19实现图像分类
2、基于DLP平台实现图像分类
3、非实时图像风格迁移
第四章:编程框架使用(3学时理论)
本章首先介绍深度学习编程框架的概念及作用,随后介绍目前工业界及学术界大量使用的代表性编程框架PyTorch的编程模型及基本用法,最后通过驱动范例来介绍如何基于PyTorch实现深度学习的预测推断和训练。
4.1 编程框架概述
4.2 PyTorch概述
4.3 PyTorch编程模型及基本用法
4.4 基于PyTorch的模型推理实现
4.5 基于PyTorch的模型训练实现
4.6 驱动范例
4.7 本章小结
第五章:编程框架原理(2学时+课后实验)
本章首先介绍编程框架的设计原则和整体架构,说明编程框架以用户程序作为输入到输出的完整执行流程。然后,依次介绍编程框架中的四大核心模块的原理和相关技术,包括计算图构建、计算图执行、深度学习编译以及分布式训练等模块。同时,本章节需要完成基于VGG19实现图像分类、实时风格迁移、实时风格迁移的训练、自定义Pytorch CPU算子的章节实验。
5.1 编程框架设计
5.2 计算图构建
5.3 计算图执行
5.4 *深度学习编译
5.5*分布式训练
5.6 本章小结
章节实验:
1、基于VGG19实现图像分类
2、实时风格迁移的推断
3、实时风格迁移的训练
4、自定义 Pytorch CPu算子
第六章:面向深度学习的处理器原理(4学时理论)
本章面向深度学习处理的需求,介绍和分析了各类处理器的基本原理和设计准则。按照从通用架构逐渐走向专用架构的顺序,本章首先介绍通用处理器(以CPU为代表)的结构和执行原理;随后,针对通用处理器执行深度学习模型时的缺陷,引出向量处理器(以GPU为代表)的结构和执行原理;然后,针对向量处理器执行深度学习模型时的缺陷,引出深度学习处理器(DLP)的结构和执行原理。最后,面向深度学习大模型发展的需求,简要探讨了构建大规模深度学习处理器的方法。
6.1 通用处理器
6.2 向量处理器
6.3 深度学习处理器
6.4 大规模深度学习处理器
6.5 本章小结
第七章:深度学习处理器架构(4学时理论+课后实验)
本章分别从计算、存储和通信三个方面深入探索深度学习处理器的基本硬件模块设计。通过本章内容的学习,希望学生能够更深入地理解智能计算任务在深度学习处理器上运行的细节,知晓更多深度学习处理器架构设计时的重要考量之处。
7.1 计算
7.2 存储
7.3 通信
7.4*设计优化
7.5 本章小结
章节实验:面向卷积运算的 DLP 架构及其处理矩阵/卷积的过程
第八章:智能编程语言(6学时理论+课后实验)
本章将从智能计算系统抽象架构、编程模型、语言基础、编程接口、功能调试、性能调优以及系统级开发等方面展开介绍。
8.1 为什么需要智能编程语言?
8.2 智能计算系统抽象架构
8.3 智能编程模型
8.4 智能编程语言基础
8.5 智能应用编程接口
8.6 智能应用功能调试
8.7 智能应用性能调优
8.8智能编程语言的应用
8.9 本章小结
章节实验:
1、智能编程语言算子开发与集成实验(BANG开发实验)
2、智能编程语言性能优化实验
第九章:综合实验(2学时理论+课后实验)
本章以大模型计算系统作为驱动范例,将前面各章介绍的智能算法、编程框架、芯片架构、编程语言等内容串联起来,使读者能真正融会贯通,理解如何根据大模型算法特点进行系统软件的设计优化和硬件平台的构建,以高效支持大模型的训练和推理,从而全面地理解智能计算系统。本章从面向大模型的计算需求出发,首先介绍大模型的发展并对相关算法展开归类总结;然后通过BLOOM模型案例,分析大模型训练的实际计算过程;随后深入探讨了大模型系统软件相关的优化技术;最后介绍了大模型基础硬件。
9.1 大模型算法分析
9.2大模型驱动范例:BLOOM
9.3 大模型系统软件
9.4 大模型基础硬件
9.5 本章小结
综合实验:
1、基于 Stable_diffusion 实现图像生成的功能。
2、基于 Llama 2 实现聊天机器人应用并在 DLP 平台上进行部署
3、绍基于 Code Llama 实现代码生成并在 DLP 平台上进行部署