|
AI芯片设计入门系列,适合AI芯片设计人员入门与芯片赛道投资人了解技术内涵。该系列目录附在本文最后,本文介绍第四章GPU架构。
主编作者 陈巍 博士,AI芯片架构+算法顶级专家,弟子分布AMD、海思、Micron等大厂。
<hr/>4.1 基本构架
AMD GPU平剖图
CPU中,大部分晶体管主要用于构建控制电路(比如分支预测等)和Cache(缓存,用于存储数据),只有少部分的晶体管来完成实际的运算工作。相比之下,GPU的控制电路结构简单,对Cache的需求小,大部分晶体管用来构成各类大规模专用并行计算电路、多条流水线,使得GPU的任务计算速度比CPU有突破性的飞跃,且拥有更强大的浮点运算能力。打个比方,CPU就是几个中学生做中考题,GPU就是几千个小学生做口算题。
CPU和GPU架构对比
在架构上,GPU由数以千计的更小、更高效的核心(类似于CPU中的ALU)组成,这些核心专为同时处理多任务而设计。现在的CPU,一般是多核(Multi-Core)结构;而GPU一般是众核(Many-Core)结构。
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或其他类型的处理器搭建。
NVIDIA A100 架构(Ampere架构)
4.2 NVDLA解读
深度学习推理的大部分计算工作都是基于数学运算, 这些运算可以大致分成四个部分: 卷积,激活,pooling(池化)和normalization(归一化)。它们的内存访问模式是非常可预测的,并且适合并行化。NVDLA(NVIDIA Deep Learning Accelerator)是NVIDIA发布的一个开源架构,以解决深度学习的计算需求。标准化深度学习硬件加速模块旨在促进机器学习的发展。
NVDLA 硬件模块提供了一个简单的、灵活的、推理加速解决方案。开源的版本里面包含的了工业级的 RTL 设计,基于TLM System C 写的仿真模型(用于软件开发,系统整合及验证),开源的软件包含了 firmware,模型 builder。
4.2.1 两种实现模型的比较
NVDLA 硬件利用标准接口与系统的其余部分进行数据交连接: 一个控制通道实现一个寄存器文件和中断接口,并使用一对标准的 AXI 总线接口来与内存进行交互。主内存接口是用来连接系统的宽内存系统,包括系统DRAM;这个内存接口与系统的 CPU 和外围 I/O 设备共享。第二个内存接口是可选的,它允许连接到更高带宽的内存(例如HDM),这些内存可能专门用于 NVDLA 或计算机视觉子系统。异构内存接口提供更高的数据传输性能与灵活性。
NVDLA 的实现一般分为两类:
Headless(small) — NVDLA 硬件的单元管理是在主系统处理器上进行的。
Headed(large) — 将高中断频率任务委托给一个与 NVDLA 子系统紧密耦合的微控制器。
两种NVDLA实现模型的比较
上图中的小系统模型显示了一个 headless NVDLA 实现的例子;而大系统模型显示了一个 headed 实现。小系统模型实现了一个对成本更敏感的构建模式。大系统模型的特点是增加了专用的控制协处理器(微控制器)和高带宽的 SRAM 来支持 NVDLA 子系统。大系统模型更倾向与高性能的物联网设备,这些设备可以同时运行许多任务。
<hr/> --未完待续--
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|