在深度学习和神经网络领域,研究人员通常离不开GPU。得益于GPU极高的内存带宽和高核心数,研究人员可以更快地获得模型训练结果。同时CPU受限于自身核数少,计算运行时间较长,不适合深度学习模型和神经网络训练。但最近,来自莱斯大学、蚂蚁集团和英特尔的研究人员发表了一篇论文,表明运行在消费级CPU上的AI软件训练深度神经网络的速度比GPU快15倍。该论文已被MLSys2021会议接收。论文链接:https://proceedings.mlsys.org/paper/2021/file/3636638817772e42b59d74cff571fbb3-Paper.pdf论文的通讯作者、莱斯大学布朗工程学院计算机科学助理教授AnshumaliShrivastava表示:“培训成本是人工智能发展的关键。主要的瓶颈是,一些公司每周花费数百万美元来培训和微调人工智能工作负载。”他们的研究旨在解决人工智能发展过程中的训练成本瓶颈。GPU的理想工作负载,它比CPU快约3倍。如今,整个行业都专注于改进和实现更快的矩阵乘法运算。研究人员也在寻找专门的硬件和架构来驱动矩阵乘法,他们正在甚至谈论用于特定深度学习的专门硬件-软件堆栈。Shrivastava领导的实验室在2019年就这样做了,将DNN训练转换为可以用哈希表解决的搜索问题。次线性深度学习引擎(SLIDE)他们设计的是专门为在消费级CPU上运行而设计的,Shrivastava和英特尔合作伙伴宣布了这项技术在MLSys2020会议上。他们说该技术可以胜过基于GPU的训练。在MLSys2021会议上,研究人员探讨了使用矢量化和内存优化加速器是否可以提高现代CPU上的SLIDE性能。“基于哈希表的加速性能优于GPU,”该论文的第一作者、莱斯大学ML博士生ShabnamDaghaghi说。“我们使用这些创新进一步推动SLIDE,表明即使不专注于矩阵运算也可以利用CPU的强大功能,并且训练AI模型的速度比性能最好的专用GPU快4到15倍。”ShabnamDaghaghi此外,该论文的第二作者、莱斯大学计算机科学与数学本科生NicholasMeisburger认为,CPU仍然是计算领域最常见的硬件,其对AI的贡献不可估量.技术细节在本文中,研究重新审视了两个现代英特尔CPU上的SLIDE系统,以了解CPU在训练大型深度学习模型方面的真正潜力。这项研究使SLIDE能够利用向量化、量化和一些内存优化现代CPU。在相同的硬件上,研究的优化工作导致与未优化的SLIDE相比,训练时间加快了2-7倍。SLIDE的工作流程包括:初始化、前向-后向传播和哈希表更新。下图1是前向-backwardpropagationworkflow:前向和后向传播示意图,研究侧重于大规模评估,其中所需的神经网络有数亿个参数。优化后的SLIDE在两个IntelCPU,CooperLaker服务器(CPX)和CascadeLake服务器(CLX)上与以下5个基准进行了比较:1)V100GPU上的full-softmaxtensorflow实现;2)CPX上的full-softmaxtensorflow实现;3)CLX上的full-softmaxtensorflow实现;4)CPX上的简单SLIDE;5)CLX上的朴素幻灯片。其中,CPX是英特尔第三代至强可扩展处理器,支持基于AVX512的BF16指令。CLX版本较旧,不支持BF16指令。我们在三个真实的公共数据集上评估我们的框架和其他基准。Amazon670K是用于推荐系统的Kaggle数据集;WikiLSH-325K数据集和Text8是NLP数据集。详细统计如下表1所示:对于Amazon-670K和WikiLSH-325K,研究人员使用标准的全连接神经网络,隐藏层大小为128,输入和输出均为多热编码向量。对于Text8,研究使用隐藏层大小为200的标准word2vec语言模型,其中输入和输出分别是one-hot编码向量和multi-hot编码向量。下面图6的第一行表示所有数据集的时间收敛图,结果表明本研究中提出的优化SLIDE在CPX和CLX(深绿色和浅绿色)的训练时间上优于其他基准。图6的底行显示了所有数据集的直方图。下面的表2给出了三个数据集的详细数值结果:在下面的表3中,研究人员展示了BF16指令对每个时期的平均训练时间的影响。结果表明,在Amazon-670K和WikiLSH325K上,在激活和权重中使用BF16指令分别提高了1.28倍和1.39倍的性能。但是,在Text8上使用BF16没有任何效果。下面的表4显示了在使用和不使用AVX-512的三个数据集上优化SLIDE的每个epoch的平均训练时间的比较。结果表明,AVX-512的矢量化将平均训练时间减少了1.2倍。
