近一年来,随着古老的类神经网络以“机械学习”之名再度受到重视,拜在过去一直被视为“机器永远不可能打败人类”的围棋世界,AlphaGo痛宰世界顶尖职业棋士的丰功伟业之所赐,“人工智能芯片”成为处理器领域的新显学,不仅现有市场巨头争先恐后的抢著“沾光”,更不乏纷纷投入研发工作的新创公司与学术机构,也引爆了一连串不同类型的芯片,如汎用处理器、GPU、高度可程式化的FPG、与ASIC,何种最适合人工智能应用的鸡同鸭讲嘴炮战。
但有那个实力在最短时间内“真枪实弹”的大规模应用,为客户提供价值,为企业创造利润,才是真正的硬道理,这也就是为何经常不动声色、鸭子划水、但一出手,就绝对保证“轰动武林,惊动万教”的云端巨人Google,其TPU (Tensor Processing Unit) 如此受到重视的主因。
目前网络上早已不乏满山满谷“浅谈”迈入第二世代Google TPU的“科技文青报导”,但如果各位科科会对这些内容感到心满意足,自以为洞悉Google关门打造人工智能芯片的全貌,那大概也不会爬文爬到这里了。
一张简单的规格比较,就足以取代不着边际的千言万语。请多看几次,我会等你。
Google自行设计的TPU之所以受到高度重视的原因也很简单:这世界上大概也没有其他公司和组织,比他们更加了解资料中心对人工智能的实际需求了,所以量身订做后的芯片当然特别的合身。究竟有多秾纤合度?已经无须浪费文字来解释了。
但只这样一句话就草草结束本文,想必各位科科绝对不会满意,就言简意赅的介绍几个TPU技术的精髓,特别是如何兼顾成本、效能和功耗的刀口上。
- 极力塞好塞满执行单元:内存子系统跟不上运算效能,在计算机工业历史早已成为常态,快取内存 (cache) 更早就问世于“半个世纪前”刚刚好就是1968年1月的IBM S/360 Model 85大型主机,Google势必要琢磨出不让TPU空转的运算架构。
- 更低的运算精度:推论与预测并不需要很高的运算精确度,这也是为何NVIDIA、AMD和Intel在其“人工智能芯片”逐步强化短整数支援性的主因。Google初代TPU仅支援8位元整数,大幅简化运算单元的复杂度,并减少内存消耗和资料储存空间。即使是因学习导向不得不转向浮点运算的第二代TPU,也是在浮点乘法“偷吃步”。
- 古老的脉动阵列 (Systolic Array):讲的简单一点,就是将相同的运算单元“串串乐”,原本需要反复执行并存取内存的运算工作,就一次搞定,减少早已跟不上运算速度的I/O操作与内存存取,虽然应用范围受限,但却极度适合矩阵乘法和普及于特征辨识的卷积运算 (Convolutional Neural Network,CNN),同时让“控制”和“运算”管线化,所以处理器控制单元仅占第一代TPU 2%芯片面积,对降低芯片设计复杂度颇具立竿见影之效。
- 高容量嵌入式内存:第一代TPU总计塞入了高达28MB的内存,减少对外部DRAM的存取需求。
Google尚未揭露其“很像GPU”的第二代TPU技术细节,但想必其设计精神势必相去不远,而我们也见证了云端霸主在人工智能领域,从CPU、GPU、FPGA一路到自制ASIC的发展轨迹。 唯一可以确定的是,早在“四年多前”就准备研发自家人工智能芯片的Google,其高瞻远瞩的能耐,让其他芯片厂商和网络云端服务业者完全看不到车尾灯。Google I/O 2018曝光其第三代TPU,也完全不会让人感到意外,只是我们还是会继续一如往昔的看到排山倒海的科技文青们继续“惊呆”吧,科科。






























