「FPGA师资研修班」人工智能在FPGA的应用与教学

——2023芯航计划·FPGA师资培训(寒假)

一、活动概要

近年来FPGA新技术发展非常迅速,已经脱离了我们在大学课本上看到的那些逻辑电路和状态机,发展到以C语言编程HLS工具自动生成HDL,可定制生成Linux操作系统平台,其上可以运行C++、python等高级语言和人工智能模型、可以使用Gstreamer视频套件工具、可以像软件调用函数一样的方式调用硬件加速kernel,为现代技术的高级应用和加速应用提供了很好的支撑平台。

FPGA人工智能直观而生动,容易调动学生的积极性,又由于其涉及最新的人工智能技术,python编程和嵌入式技术,学生可以紧跟当今这些热点技术,充分实践,提升实力而扩大就业面,是极好练手的多技术实践平台。

自google开源tensorflow框架以来得以在全世界范围内迅速发展,各种框架模型层出不穷,现在已经不是AI模型不够的问题,而强调实时性的AI模型落地需要巨大算力,而芯片有限的算力成为瓶颈,而FPGA可以借助HLS技术和Vitis AI工具链将AI模型使用定制DPU(深度学习单元)硬件来实现,极大地提高了算力,其可定制多线程并行计算能力使得超过了同等功耗GPU算力的数十倍,并且具备硬件可升级性,比ASIC更适应不断演进叠代的AI模型,为人工智能的落地提供了高效自适应的硬件实现手段,是一片待开垦的蓝海。

由于这是一个跨学科的新领域,而原有的人工智能人才偏重软件,FPGA人才偏重硬件,都缺乏全面的知识储备,我们这次培训就是为了解决这个问题,通过对知识体系的完整学习和例程的实操掌握FPGA AI应用所必需的系统知识。

为了实现将人工智能模型移植到FPGA上,我们需要先拿到模型或训练模型,而大部分硬件或嵌入式工程师没有这方面的知识基础,我们需要先学习掌握这个基础知识。因此在我们讲座的第一部分,介绍了最基本的人工智能实现原理、AI模型的关键组件卷积层、池化层、激活函数、全连接层的概念和作用,以及如何用这些组件实现模型的训练和推理,帮助学员理解消化和掌握人工智能的概念和流程。我们的例程有从网站上直接拿到这些模型和在计算机上先进行迁移训练得到这些模型,再进行FPGA的移植与实现。

本次研修班将带你从头开始讲解实操AI模型原理、组件、训练、框架转换、PC推理、量化编译、镜像制作、平台制作和开发板运行全流程。涉及多种AI框架和编程语言,支持视频多媒体框架GStreamer和VVAS管道编程,让你以最快的方式熟悉FPGA新技术,方便在高校教学中进行新的尝试。

二、具体有关事宜

1、【面向对象】高校相关专业教师
2、【主办单位】高云半导体、成电少年学
3、【培训地址】成电少年学广东人才培养基地(东莞市松山湖)
4、【培训时间】2023.12.25-2023.12.30(2023.12.24日报到)
5、【授课方式】线下面授
6、【培训费用】4880元/人(交通、食宿自理)
7、【资料相关】电脑自备

三、讲师介绍

王老师,博士,96年北京交大博士毕业进入华为公司研发部,某国家轨道交通实验室技术总监、美资Oplink光联通讯公司研发总监、港资英海威光电通信公司技术总监、美资Lumentum公司高级研发经理、中兴通信当年投资额最大的项目第一代SDH 2.5G项目经理,在国内外顶尖IT企业长期从事FPGA相关研发和管理工作,现任多家头部高科技工程技术人才培训机构少年学、中际赛威、依元素和电巢FPGA高级讲师,常年给各大研究所和企业工程师举办FPGA技术培训,授课经验丰富,深受学员好评。

举办工程师高级研修班兼企业内训各地剪影
四、课程内容

(一)人工智能技术入门讲解,实现原理、主要参数和PC机实操,以及FPGA AI的环境搭建、模型移植、深度学习DPU IP核等。
a)、讲解计算机如何模仿人脑实现人工智能,并由此派生出的主要组件卷积层、池化层、激活函数、全连接层的概念。
b)、讲解训练中的重要概念正向传播、反向传播、最常用的梯度下降法、学习率、损失函数和优化函数,并通过这些方法和函数如何控制推理结果。
c)、讲解并在PC机上演示mnist的设计、数据集准备、损失函数和优化函数选择、模型训练、后处理编程和推理测试,并最终移植在FPGA开发板上,了解整个AI模型tensorflow2.0的设计、训练和移植过程。
d)、以口罩模型和在PC机上实操,讲解最常用的yolo模型实现原理和模型训练,模型框架转换caffe和tensorflow,其训练得到的模型在PC机上使用Keras框架上,用python进行后处理编程验证。
e)、FPGA AI环境搭建。介绍虚拟机VMware、Ubuntu、Vitis、docker、Vitis AI、CMake、Opencv、XRT和Model Zoo的安装和环境变量设置。
f)、FPGA AI开发原理和流程。介绍深度学习处理单元DPU、AI优化器、AI量化器、AI编译器、运行时XRT、DPU指令集等Vitis AI主要概念、开发流程、专有命令和API接口。
g)、介绍FPGA BD设计和DPU IP核,以及AI模型框架转换、固化量化编译过程中对模型参数的修改来匹配实现FPGA DPU和处理速度的要求,量化数据集的准备和处理以及如何通过脚本编程实现方便快速移植。


(二)FPGA新技术演示、主流开发板和FPGA人工智能应用原理、开发流程和软硬件平台搭建。
a)、FPGA主流Xilinx开发板和芯片系列介绍(作用、结构、命名、接口和资源)。
b)、主流开发板pynq-z2、ultra96、KV260、zcu104开发板例程展示与程序介绍,其中KV260以三种语言C++、python、vvas展示了多种AI模型人脸识别、姿态识别、人物跟踪、语义分割和目标识别。

c)、FPGA人工智能Vitis AI开发流程,支持AI框架caffe、tensorflow和pytorch,支持两种runtime vart和onnx,Model Zoo 100+模型移植,剪枝、固化、量化、编译全工具链。
d)、自从Vitis AI 3.0版,增加了对ONNX框架的支持,VOE (Vitis AI ONNX Runtime Engine)实现了OP在DPU和CPU间自动分配,解决了FPGA AI的痛点。
e)、FPGA AI软硬件环境搭建和环境变量配置,介绍VMware、Ubuntu、Vitis、Docker、Vitis AI、CMake、OpenCV、XRT、Petalinux软件。
f)、Kria Som KV260开发板环境搭建、镜像制作、硬件连接、网络配置、加速应用载入和配置命令。


(三)KV260板载例程讲解和Demo,显示器和摄像头配置。
讲解实操板载加速应用Smartcam和人物跟踪REID python Jupyter Notebook例程,显示器、摄像头驱动等查询配置命令。

(四)以最流行的yolo模型为例讲解实操AI模型下载、迁移训练、框架转换、PC 验证、剪枝固化、量化编译、镜像制作和硬件平台制作全流程。
a)、创建KV260 Smartcam硬件基本平台和硬件加速平台,全过程采用脚本方式开发,也可以用Vitis或Vivado Gui界面打开操作,讲解IP核、总线连接和信号走向。

b)、从网上下载的通用yolov3和yolov3-tiny densenet框架模型,转换到keras框架,在PC上使用python进行验证和后处理,在PC和FPGA开发板上展示实时图像与视频。
c)、以口罩识别为例,从yolov3-tiny模型迁移训练获得口罩模型、框架转换、固化、量化、编译到开发板AI后处理程序运行显示的全流程实操。

(五)以yolo与segmentation模型为例讲解开发板DPU调用和AI后处理程序编写。
DPU指令集、图片张量输入输出转换、yolo模型原理、非最大值抑制、目标框筛选与绘制,segmentation模型输出张量与色彩的转换方法、HDMI显示、Ethernet传输和保存的程序编写。

(六)FPGA视频套件Gstreamer & VVAS原理、参数与管道编程。
a)、视频多媒体GStreamer管道套件概念、语法、安装和PC端应用例程讲解实操。
b)、基于Gstreamer框架的Xilinx FPGA视频应用Vitis Video Analytics SDK (VVAS)开发套件和多种典型VVAS场景编程讲解实操。

(七)多语言编程实现AI多功能输出、时延分析与参数影响、新版Vitis AI ONNX 新功能VOE
a)、分别以C++、python和VVAS多种编程语言在开发板上实现AI模型目标识别、姿态识别、语义分割和重定向REID,使用多种媒介输入和多种形式输出(HDMI显示、Ethernet传输和保存文件),使用VCU硬件编解码加速。

b)、对程序进行实时分析,找出影响帧率的因素,对参数进行实时分析,找出影响同步的参数,最终得到正常显示的实时AI效果。
c)、新版本Vitis AI ONNX新特征VOE,对AI模型进行量化和生成onnx模型,其自动实现OP在DPU与CPU间的分配。以语义分割模型segmentation为例,演示讲解这个新流程和AI后处理。

五、课程优势

FPGA AI所采用的新技术不仅可以作为数字逻辑电路传统知识的实践平台,可以直接接触到世界最先进的FPGA技术,而且能覆盖大学专业课程的知识点,既可以作为某一专业的实践平台,也可以作为大学期间统一的教学实践平台,实现孔子先生提倡的“一以贯之”的教学思想。
FPGA新技术涉及到多领域的技术融合,实现了从硬件到软件,从底层到高层的知识贯通,如下图所示:

FPGA新技术涵盖知识点