在学习深度学习算法时,GPU被认为是必不可少的,但是在模型训练完成后提供服务时,通常会使用CPU代替GPU。例如,Roblox报告说,经过一些优化,即使是较重的型号,例如BERT,也推论32核Xeon的速度要比同价的V100快六倍以上。这意味着成本效益比高出6倍。
但是,如果您稍微看一下上述数字,我认为这不是一个公平的比较。对于32核Xeon,它分为多个内核并具有独立的缓存,在内存带宽使用方面具有优势,而V100最终是一个GPU,因此在同时执行多个推理时,就缓存和内存带宽而言。这是因为它“竞争”并且无法获得最佳性能。
由于推理比训练占用的内存少得多,因此即使使用单个GPU,也可以同时运行多个推理,如果实际测试,则执行速度会随着数量的增加而显着降低。 (对于完全并行,只要您在内存限制内,速度就应该相同。例如,在一个推理中增加批处理大小将大大降低速度)
NVidia的新GPU结构在Ampere推出的多实例GPU技术似乎能够克服这一限制。一个GPU可以划分并用作逻辑上独立的子GPU(最多七个),每个子GPU分别分配高速缓存和内存带宽。预期在实际推理中,性能将大大提高。另外,新添加了19位格式TP32,这是FP16和FP32之间的中间形式,据说性能提高了大约6倍。 (这不是无损的改进,因为这是牺牲精度的保证)
假设将MIG和TF32大致组合起来可实现20倍(!)的性能提升,那么通过将之前Roblox示例中的6倍效率的CPU推翻,GPU的效率大约提高3倍。然后,可以说在服务方面将获得GPU的竞争力,但是...使用云实例时,GPU机器的单位成本是CPU机器的单位成本的3倍以上,很难说它会更好。 RTX 3090 24G将于下半年发布,因此我想购买并进行实际测试。 (MIG,TP32有效性验证)链接是NVidia Ampere体系结构介绍: