科技前沿

Google揭露自家TPU技术细节 效能远胜CPU/GPU

  

     Google为了进一步强化机器学习能力,已私下研发专用的张量处理器(TensorProcessingUnit,TPU)数年,并在2016年首度亮相,但当时并未透露太多细节。近期Google终于再提供更深入的信息,公布一份长达17页的测试报告,指出自家研发的TPU效能已达到绘图处理器(GPU)及中央处理器(CPU)1530倍,在机器学习测试中更优于英特尔(Interl)Xeon处理器以及NVIDIAGPU
    Google表示,此款TPU采用28奈米制程,工作频率为700MHz。原先设计目的在于加速自家的TensorFlow算法,主要的逻辑单元内含65,536组八位的乘积累加(Multiply-accumulate)单元以及一组24MByte的快取,每秒可进行92兆次运算(Tera-operations/second)
    GoogleTPU的负载以高级TensorFlow框架编写,可支持多层感知(MultilayerPerceptron,MLP)、卷积神经网络(ConvolutionalNeuralNetwork,CNN)和长短期记忆(Long-ShortTermMemory,LSTM)等人工智能技术,这些技术占数据中心95%的神经网络推理计算需求。

    平均而言,相较于使用IntelHaswellCPUNVIDIAK80GPU的系统,GoogleTPU大约快上1530倍,每瓦效能比(Performance/watt)更可达到3080倍以上。此外,如果在TPU中使用GPUGDDR5内存,处理速度还能再翻三倍,速度/功率比(TOPS/Watt)能达到GPU70倍以及CPU200倍。
    数据缓冲区(DataBuffer)占了此款TPU37%,而媒体访问控制(MediaAccessControl,MAC)则占了其中的30%。相较于NVIDIAGPUGoogleTPU的尺寸较小,却多出25倍的MAC,芯片内建的内存也比K80多出3.5倍。
    GoogleTPU使用PCIeGen3x16总线,以及256Bytes内部数据路径。主CPU将加速器作为浮点处理器(FloatingPointProcessor),透过PCIe总线下达指令。此款TPU也运用和GPU加速器相同的Tensorflow软件。研发人员固定一组核心驱动程序,并依照需求调整用户空间(UserSpace)驱动程序,以容纳不断变化的应用程序。
    GoogleTPU目标不在于更高吞吐量(Throughput),因而舍弃传统多功能处理器的许多元素,聚焦于将延迟时间压低在7毫秒之下。不过,Google自行研发的TPU也不是毫无缺点,其运算效能虽然优于英特尔和NVIDIA的处理器,但在轻载时的省电性能却不太理想。举例来说,同样在10%的负载条件之下,NVIDIAK80GPU的功耗是其最大功耗的66%,英特尔的Haswell处理器则是56%,但GoogleTPU却仍高达88%Google也响应,由于只有短短15个月的设计时程,因此并未能将低功耗纳入此芯片设计的重点。

    此次公布的报告指出,此款TPU所带来的数量级效能突破相当罕见,可望成为特定领域架构的原型,为未来新研发的处理器树立更高标准。但目前该TPU只使用于Google的数据中心,尚未进一步公布未来运用细节或是改善方向。