GPU天生适合海量、并行的矩阵运算、于是大量用在深度学习的模型训练上
深度学习中计算量最大的是什么呢 ? 深度学习的推断部分
1 | `推断部分`: 在完成深度学习训练之后、把训练完成的模型存储下来. 这个存储下来的模型、是许多个向量组成的参数、然后根据这些参数、计算输入的数据、得到结果. eg. 推测用户是否点击广告; 扫身份证进行人脸识别 |
思考: 模型的训练和推断有什么区别 ?
1 | 一、深度学习的推断、灵活性要求更低. 只需要计算一些矩阵的乘法、加法、调用一些sigmoid这样的激活函数、可能计算很多层、但也只是这些计算的简单组合 |
于是: 第一代TPU的设计目标:
在保障响应时间的情况下、尽可能的提高能效比
这个指标、也就是进行相同数量的推断工作、花费的整体能源要低于CPU和GPU
TPU的几点设计
- 向前兼容 2. TPU未设计成包含取指电路的GPU、而是通过CPU发送需要执行的指令
- 使用
SRAM
作为统一缓冲区,SRAM
一般用来作为CPU的寄存器或者高速缓存、SRAM
比DRAM
快, 但因为电路密度小、占用空间大、价格也较贵、之所以选择SRAM
是因为整个推断过程、它会高频反复地被矩阵乘法单元读写、来完成计算- 细节优化, 使用8Bits数据