Lead Reconfigurable Memory Computing to the Feature

陈巍谈芯 GPU架构(上) —《AI芯片设计:原理与实践》节选

Homepage - TensorChip    原创技术文章    陈巍谈芯 GPU架构(上) —《AI芯片设计:原理与实践》节选

《AI芯片设计:原理与实践》系列,适合AI芯片设计人员入门与芯片赛道投资人了解技术内涵。

■ 陈巍,资深芯片专家,人工智能算法-芯片协同设计专家,擅长芯片架构与存算一体

■ 耿云川,资深SoC设计专家,软硬件协同设计专家,擅长人工智能加速芯片设计

 

往期文章简选

■ 陈巍谈芯  目标检测网络SSD —《AI芯片设计:原理与实践》节选

■ Nature首发的三星存内计算芯片原理和不足是什么?

 

5.1 基本构架

 

CPU中,大部分晶体管主要用于构建控制电路(比如分支预测等)和cache(缓存,用于存储数据),只有少部分的晶体管来完成实际的运算工作。相比之下,GPU的控制电路结构简单,对cache的需求小,大部分晶体管用来构成各类大规模专用并行计算电路、多条流水线,使得GPU的任务计算速度比CPU有突破性的飞跃,且拥有更强大的浮点运算能力。打个比方,CPU是几个中学生做中考题,GPU就是几千个小学生做口算题。

 

AMD GPU平剖图

 

在架构上GPU由数以千计的更小、更高效的核心(类似于CPU中的ALU)组成,这些核心专为同时处理多任务而设计。现在的CPU,一般是多核(multi-core)结构;而 GPU 一般是众核(many-core)结构。

 

CPU和GPU架构对比

 

GPU中并行计算改进了很多重要细节:

(1)一个计算问题可以分解成可同时处理的离散指令;

(2)每部分指令进一步细分为一系列内部指示;

(3)每个部分的问题可以同时在不同的计算单元上执行,显著提高了算法的处理速度。

 

并行运算示意图

 

为充分利用GPU的计算能力,NVIDIA在2006年推出了CUDA(Computer Unifie Device Architecture,统一计算设备架构)这一编程架构。该架构使GPU能够解决复杂的计算问题。它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。

 

OpenCL(Open Computing Language,开放计算语言)为异构平台提供了一个编写程序,尤其是并行程序的开放的框架标准。OpenCL所支持的异构平台可由多核CPU、GPU或其他类型的处理器组成。

 

CUDA只能够在NVIDIA的GPU硬件上运行。但是,OpenCL的目标是面向任何一种并行处理器,OpenCL是第一种真正的开放自由版权编程标准,适用于异构系统上的通用计算。而异构平台可由CPU、GPU、DSP、FPGA或其他类型的处理器搭建[1]。

 

5.2 NVDLA解读

 

深度学习推理的大部分计算工作都是基于数学运算, 这些运算可以大致分成四个部分: 卷积、激活、池化(pooling)和归一化(normalization)。它们的内存访问模式是非常可预测的,并且适合并行化。

 

NVDLA(NVIDIA Deep Learning Accelerator)是NVIDIA发布的一个开源架构,以解决深度学习的计算需求。标准化深度学习硬件加速模块旨在促进机器学习的发展。

 

NVDLA硬件模块提供了一个简单灵活的推理加速解决方案。开源的版本里面包含工业级的RTL设计,基于TLM System C写的仿真模型(用于软件开发,系统整合及验证),开源的软件包含firmware、模型builder。

 

当然NVDLA架构开发得比较早,也有一些技术遗憾。比如对AI计算数据流和存储墙的优化有限,以及未使用针对AI优化的存储器。

 

5.2.1 两种实现模型的比较

 

NVDLA硬件利用标准接口与系统的其余部分进行数据交连接——一个控制通道实现一个寄存器文件和中断接口,并使用一对标准的AXI总线接口来与内存进行交互。主内存接口是用来连接系统的宽内存系统,包括系统DRAM;这个内存接口与系统的CPU和外围I/O设备共享。第二个内存接口是可选的,它允许连接到更高带宽的内存(例如HDM),这些内存可能专门用于NVDLA或计算机视觉子系统。异构内存接口提供更高的数据传输性能与灵活性。

 

NVDLA的实现一般分为两类:

(1)Headless(small):NVDLA硬件的单元管理在主系统处理器上进行。

(2)Headed(large):将高中断频率任务委托给一个与NVDLA子系统紧密耦合的微控制器。

 

下图中的小系统模型("Small" NVDLA system)显示了一个headless NVDLA实现的例子;而大系统模型("Large" NVDLA system)显示了一个headed实现。小系统模型实现了一个对成本更敏感的构建模式。大系统模型的特点是增加了专用的控制协处理器(微控制器)和高带宽的SRAM来支持NVDLA子系统。大系统模型更倾向与高性能的物联网设备,这些设备可以同时运行许多任务。

两种NVDLA实现模型的比较

 

--未完待续--

 

Reference:

NVDLA Open Source Project: https://github.com/nvdla/

 

 

END

 

 

作者简介

■ 陈巍 博士

资深芯片专家,人工智能算法-芯片协同设计专家,擅长芯片架构与存算一体。

主要成果包括:

1. 国内首个可重构存算处理器架构(已在互联网大厂完成原型内测)

2. 首个医疗领域专用AI处理器(已落地应用)

3. 首个RISC-V/x86/ARM平台兼容的AI加速编译器(与阿里平头哥/芯来合作)

4. 国内首个3D NAND芯片架构与设计团队建立(与三星对标)

5. 国内首个嵌入式闪存编译器(硅编译器,与台积电对标)

6. 国内首个90nm闪存芯片架构(合作完成,与Cypress对标)

中关村云计算产业联盟,智能计算产业技术创新联合体,智能感知和信息化专家工作委员会专家。

 

■ 耿云川 博士

资深SoC设计专家,软硬件协同设计专家,擅长人工智能加速芯片设计。

主要成果包括:

1. 国内首个可重构存算处理器架构(已在互联网大厂完成原型内测)

2. 日本NEC电子EMMA-mobile构架多媒体计算系统

3. 日本瑞萨电子车载计算SoC芯片构架(唯一外籍专家)

4. 日本瑞萨电子R-Mobile/R-Car系列车载计算芯片

5. 支持ADAS的车载计算硬件

 

《AI芯片设计:原理与实践》目录

(内含设计实战)

 

1 概述 

    1.1 AI芯片的应用场景

    1.2 AI芯片的分类

    1.3 AI芯片设计基本流程

    Reference

2 AI芯片常用机器学习模型

    2.1 线性模型 

    2.2 分类算法SVM 

        2.2.1 线性分类器及其求解 

        2.2.2 核函数 

        2.2.3 松弛变量 

    2.3 分类算法贝叶斯网络 

        2.3.1 贝叶斯定理 

        2.3.2 贝叶斯网络结构 

    Reference 

3 AI芯片常用深度学习模型 

    3.1 基础知识 

        3.1.1 全连接 

        3.1.2 卷积 

        3.1.3 激活函数 

    3.2 图像分类网络AlexNet 

        3.2.1 AlexNet特点 

        3.2.2 AlexNet网络结构 

    3.3 图像分类网络ResNet 

        3.3.1 ResNet特点 

        3.3.2 ResNet网络结构 

        3.3.3 ResNet算法细节 

    3.4 目标检测网络Faster-RCNN 

        3.4.1 RCNN与Fast-RCNN 

        3.4.2 Faster-RCNN特点 

        3.4.3 Faster-RCNN算法结构 

    3.5 目标检测网络SSD 

        3.5.1 SSD特点 

        3.5.2 SSD网络结构 

        3.5.3 SSD算法细节 

    3.6 目标检测网络YOLOv5 

        3.6.1 YOLOv5特点 

        3.6.2 YOLOv5网络结构 

        3.6.3 YOLOv5算法细节 

    3.7 自然语言处理网络BERT 

        3.7.1 BERT特点 

        3.7.2 Attention机制 

        3.7.3 Transformer 

        3.7.4 BERT网络结构 

        3.7.5 BERT算法细节 

    3.8 图像分类网络SqueezeNet 

        3.8.1 SqueezeNet特点 

        3.8.2 SqueezeNet网络结构 

    3.9 图像分类网络MobileNet 

        3.9.1 MobileNet特点 

        3.9.2 MobileNet网络结构 

    3.10 蛋白质求解网络AlphaFold2 

        3.10.1 AlphaFold2特点 

        3.10.2 AlphaFold2网络结构 

        3.10.3 AlphaFold2算法细节 

    Reference 

4 AI加速电路设计 

    4.1 卷积计算加速 

        4.1.1 传统MAC阵列设计 

        4.1.2 基于存算一体技术的MAC阵列设计 

        4.1.3 数据-电路映射结构 

    4.2 池化加速 

    4.3 激活函数加速 

    4.4 Softmax加速 

    4.5 BatchNormal加速 

5 GPU架构 

    5.1 基本架构 

    5.2 NVDLA解读 

        5.2.1 两种实现模型的比较 

        5.2.2 NVDLA结构 

        5.2.3 NVDLA主要模块 

    Reference 

6 DSA架构 

    6.1 基本架构 

    6.2 谷歌TPU 

    6.3 海思达文西 

    6.4 Wave Computing 

    Reference 

7 可重构架构 

    7.1 传统可重构 

    7.2 软件定义的可重构 

    7.3 DSP电路结构 

    Reference 

8 存算一体架构 

    8.1 存算一体架构的分类 

    8.2 近存计算 

    8.3 基于SRAM/DRAM的存内计算 

    8.4 基于FLASH的存内计算 

    8.5 基于新型NVM的存内计算 

    8.6 内存逻辑 

    8.7 可重构存算 

    Reference 

9 适用AI芯片的量化与稀疏化技术 

    9.1 量化技术 

    9.2 稀疏化技术 

    Reference 

10 AI芯片编译器设计  

    10.1 主流AI编译器概况  

    10.2 专用编译器设计流程  

    10.3 通用AI编译器设计流程  

    10.4 泛AI编译器设计流程  

    Reference  

11 AI芯片的未来  

    11.1 AI芯片应用与落地趋势  

    11.2 AI芯片架构发展趋势  

    11.3 AI芯片市场发展现状与趋势  

    Reference  

12 基于FPGA的图像分类AI加速器设计实战

    12.1 架构设计实战

    12.2 MAC阵列设计实战  

    12.3 Softmax加速设计实战  

    12.4 数据流-存储-计算协同优化实战

 

2022-03-02 19:20
Pageviews:0