学习进度:【37/73】
计算性能
提升CPU利用率
提升GPU利用率
CPU/GPU 带宽
CPU/GPU 高性能计算编程
总结
深度学习硬件(TPU和其他)
手机内部的芯片
DSP:数字信号处理
TPU,全称为Tensor Processing Unit(张量处理单元),是一种专门用于机器学习的高性能芯片。它由Google设计,旨在优化和加速深度学习任务,如神经网络的训练和推理过程。TPU的设计围绕脉动阵列(Systolic Array)的概念,利用128x128的乘法累加单元(MXU)阵列,通过高效的矩阵运算来提升计算速度。这种设计使得TPU在执行机器学习相关任务时,相比传统的CPU和GPU,能够提供更高的性能和能效比。
TPU的主要特点包括:
- 脉动阵列架构:TPU内部的脉动阵列允许数据以波浪的形式在芯片上流动,从而高效地执行矩阵乘法操作,这是深度学习中的关键计算。
- 高效的矩阵运算:TPU优化了矩阵乘法的计算精度,采用了8位表示浮点数,以提高推断速度。
- 异构计算模型:TPU支持异构计算,由主机端发送指令,设备端接收指令并执行操作。
- 内存分类:TPU区分系统内存(Global Memory)和本地内存(Local Memory),其中系统内存通常为DDR内存,而本地内存为NPU内部存储数据的内存。
TPU在Google云平台中以Pods的形式存在,每个Pod包含多个TPU芯片,提供大规模的并行计算能力。这种设计使得TPU非常适合处理大规模的机器学习模型,尤其是在需要快速响应的实时应用中。
此外,TPU的设计还考虑了存储带宽、内存访问速度和数据传输效率等因素,以确保在执行深度学习模型时能够达到最佳性能。Google的TPU已经发展到第三代,每一代都在性能和功能上有所提升,以满足不断增长的机器学习需求。
可编程阵列(FPGA)
AI ASIC
Systolic Array
总结
· 灵活性、易用性:Intel(CPU) > GPU > DSP > FPGA > ASIC
· 性能功耗:Intel(CPU) < GPU < DSP < FPGA < ASIC
单机多卡并行
- 单机多卡并行
- 数据并行 vs 模型并行
- 数据并行
总结
分布式训练
本质上来说和之前讲的单机多卡并行没有区别。二者之间的区别是分布式计算是通过网络把数据从一台机器搬到另一台机器
GPU机器架构
总的来说,gpu到gpu的通讯是很快的,gpu到cpu慢一点。机器到机器更慢。因而总体性能的关键就是尽量在本地做通讯而少在机器之间做通讯
同步 SGD
性能
性能的权衡
实践时的建议
总结
batchsize达到一定程度,每个batch内的样本的多样性不会比之前有多大增长,对梯度的贡献也不会比之前的batch大多少,但是大的batchsize会带来更多的训练时间,就造成了训练有效性下降。
计算机视觉
图像增广
chapter_computer-vision/image-augmentation.ipynb
数据增广
数据增强
使用增强数据训练
总结
某一种数据增强的方法有用,很多时候是因为测试集中某些图片和原始图片通过这种数据增强的方式处理之后的效果类似
- 很多时候应该从结果向前推,通过对现场部署的情况或者测试集可能发生的变化进行分析,由此来反推所需要进行的数据增强
- 在实践中,通常结合多种图像增广方法
微调
chapter_computer-vision/fine-tuning.ipynb
神经网络的网络架构
微调中的权重初始化
训练时的微调
重用分类器权重
固定一些层
总结