挑战一:高性能计算

随着网络规模越来越大,网络结构月卡越复杂,由此带来的越来越大的计算量

挑战二:嵌入式实验

嵌入式实现困难,难以部署在移动端

GPU是什么

显卡的处理器称为图形处理器,它是显卡的心脏,专为执行复杂的数学和几何计算而设计的。

GPU计算原理(构架)

NVIDA公司1999年首次提出GPU概念,硬件T&L多边形转换与光源处理是GPU问世的标志

GPU构架

GPU如何工作

  1. 顶点处理
  2. 光栅化计算
  3. 纹理帖图 TMU texture mapping unit
  4. 像素处理

固定管线–>可编程管线 OpenGL

着色器的计算目的:改变每一各像素的顶点信息和像素信息

SIMD介绍

Flynn分类法把计算机划分为四种基本类型:SISD,MIMD,SIDM,MISD

普通的ALU为标量形式,一次只能处理一个Scalar数据,GPU宏的ALU一般被设计为向量形式

多指令流,多数据流

CPU芯片空间的5%是ALU,而GPU空间的40%是ALU,这也是导致GPU计算能力超强的原因

Nvidia 为自身GPU退出CUDA并行编程库

苹果退出标准通用编程库:OpenCL

GPU编程库

GPU在图像处理分析上的应用

假如任务:给每个像素值+1,并行方式:为每个像素开一个GPU线程,由其进行+1操作

深度学习框架

如caffe,tensorflow等帮助你进行深度学习的工具,简单来说就是库,深度学习框架的出现降低了入门的门槛,不需要从复杂的神经网络开始编程,可以根据自己需要,使用已有的模型,模型的参数自己训练得到,也可以在已有模型的基础上增加自己的layer,或者在顶端选择自己需要的分类器

  1. Caffe2(FB)
  2. Pytorch(FB) 越来越受欢迎,更轻量化,封装更好,新手上手更快
  3. Tensorflow(Google)提出序列数据处理,在文本视频处理方面有更好的支持

eg. Pytorch可以自动计算梯度,能够指定GPU进行运算

Tensor:类似numpy中的array,但是能GPU上进行运算

深度学习:芯片设计与应用

神经网络加速算法

  • 低秩分解:把大的矩阵变为多个小矩阵
  • 剪枝
  • 低精度:低比特量化

NN训练是指通过大量的数据样本,代入神经网络模型运算并反复迭代,来获得各神经元正确权重参数的过程。

AI服务

深度学习框架

异构计算平台

AI加速芯片

AI芯片分类

从技术构建:

  • CPU
  • GPU:异构计算的助理
  • ASIC:专用集成电路,适合于某一单一用途的集成电路产品
  • FPGA:现场可编程门阵列,其设计初衷是为了实现半定制芯片的功能,即硬件结构可根据需要实时配置灵活改变

从功能来看:

  • Training训练
  • Interface推理

华为昇腾AI处理器

NPU(神经网络处理器),ASIC,面向卷积神经网络

AI芯片

昇腾AI处理器的主要构架

  1. 芯片系统控制CPU
  2. AI计算引擎
  3. 多层级的片上系统缓存或缓冲区
  4. 数字视觉预处理模块(DVPP)

达芬奇构架

  1. 计算单元:三种基础计算资源,分别对应矩阵,向量和标量
  2. 存储单元:有些时候限制速度的是数据的读取!
  3. 控制单元

神经网络软件流