概述
- ML需求驱动因素:低精度计算(如BF16和INT8)在保持与FP32相似精度的情况下可显著提升性能。
- 低精度优势:BF16在训练和推理中与FP32精度接近,INT8在推理中也能保持较高精度。
- 量化方法:通过对称量化、KL散度等方法确定可量化层,逐步量化模型以平衡精度和性能。
- 计算与内存优化:针对计算密集型(如卷积、内积)和内存带宽受限型(如数据重排)操作进行优化,通过图和节点级优化提升性能。
性能优化技术
- 数据重排:优化内存布局(如NHWC/NCHW)以利用CPU缓存和寄存器,提升缓存利用率。
- 向量化与寄存器阻塞:利用AVX-512指令集(Skylake)和VNNI(Cascade Lake)技术,通过向量化和寄存器阻塞提升INT8性能。
- Skylake:INT8理论性能比FP32高1.33倍(3条AVX512指令)或2倍(2条AVX512指令)。
- Cascade Lake:VNNI支持下INT8理论性能比FP32高4倍。
- 未来技术:Cooper Lake将支持BF16,理论性能比FP32高2倍。
硬件架构演进
- Skylake:每核2个FMA单元、2倍寄存器大小、1MB L2缓存,INT8峰值吞吐量比FP32高1.33倍。
- Cascade Lake:新增AVX512 VNNI指令,INT8峰值吞吐量比FP32高4倍。
- Cooper Lake:支持BF16原生计算,峰值吞吐量比FP32高2倍。
可扩展系统架构
- 模块化设计:无连接的2S、4S(2x2S)和8S(4x2S)架构,支持高密度云部署。
- 内存架构:平衡UMA/NUMA扩展,支持大内存应用。
- 管理能力:分布式统一服务器管理(OpenBMC支持),高级RAS能力提升可用性。
- 应用场景:适用于大内存、计算密集型应用,降低TCO。
实验验证
- 平台配置:Tioga Pass 2S Intel Xeon Gold 6139(18核/128GB内存),CentOS 7,Deep Learning Framework:Intel® Optimization for PyTorch。
- 模型:ResNet-50,BS=32,INT8&FP32对比。
- 结果:INT8性能显著提升,Intel® DL Boost(VNNI)技术进一步优化性能。
未来展望
- Intel® Nervana® NNP-L:OCP Open Accelerator模块,高带宽HBM内存和本地SRAM。
- Intel® Nervana® NNP-i:基于Intel 10nm工艺,Ice Lake核心,Facebook将部署。
- BF16支持:Cooper Lake、NNP-L及其他未来产品将原生支持BF16,模拟显示BF16精度与FP32相当。
行动号召
- 贡献OCP平台:参与8-Socket参考平台开发。
- 框架支持:使用Intel MKL-DNN优化主流框架。