導(dǎo)讀:在過去的一個(gè)月中,Intel收購了深度學(xué)習(xí)芯片公司 Nervana Systems ,以及移動(dòng)和嵌入式機(jī)器學(xué)習(xí)公司 Movidius,給未來的深度學(xué)習(xí)下了重注。
這些新公司將一起解決英特爾仍在形成的難題:捕捉未來深度學(xué)習(xí)領(lǐng)域——這塊預(yù)估達(dá)到數(shù)萬億美元的蛋糕。而這個(gè)艱巨的任務(wù),都將通過 Intel 自己的 Knights Mill 在機(jī)器學(xué)習(xí)代碼和工具方面的成果,加上軟件優(yōu)化的工作來實(shí)現(xiàn)。而與此同時(shí),NVIDIA 正在加強(qiáng)其自產(chǎn)的GPU訓(xùn)練和推理芯片市場(chǎng),以及配備了最新 Pascal GPU 和所需深度學(xué)習(xí)書庫的自產(chǎn)硬件市場(chǎng)。
Intel 最近令人驚訝的收購行為,也成為了重磅頭條,而此舉使得 NVIDIA 更難說明 GPU 該如何加速(目前在模型訓(xùn)練占主導(dǎo)地位的計(jì)算引擎),想要在這個(gè)新興市場(chǎng)上占有一席之地,他們還要更加努力。然而在過去的兩年中,有很多新成員加入了該領(lǐng)域,這無疑是雪上加霜。
深度學(xué)習(xí)芯片新貴宣揚(yáng)的理念是:通用體系架構(gòu)(包括GPU)無法在低精度、固定點(diǎn)及專業(yè)性上與之比擬。事實(shí)上,我們可能進(jìn)入到計(jì)算機(jī)體系結(jié)構(gòu)的“寒武紀(jì)爆炸”時(shí)代,它由深度學(xué)習(xí)方面的新需求形成。不過,我們可以設(shè)想在短時(shí)間內(nèi),應(yīng)用程序和用戶的數(shù)量足夠多,實(shí)際上就能確保芯片初創(chuàng)公司在等待大爆發(fā)時(shí)不會(huì)玩完。
Wave Computing
這些新貴中,其中一家專注深度學(xué)習(xí)的初創(chuàng)公司名為 Wave Computing,它在 Nervana 系統(tǒng)方面有很多優(yōu)點(diǎn),這些都可以使它成為 Intel(或者其它公司)的最佳收購對(duì)象。
雖然 Wave Computing 的技術(shù)和執(zhí)行方法不同于 Nervana,但公認(rèn)的是:在有著低級(jí)隨機(jī)舍入和其他相同技術(shù)的超低精度硬件上,進(jìn)行大規(guī)模深度學(xué)習(xí)訓(xùn)練時(shí),它在實(shí)用性上略勝一籌。同時(shí)該公司的 Jin Kim 告訴 The Next Platform,他們看到了自身技術(shù)對(duì)于如英特爾這類公司的價(jià)值所在。Nervana 的采購行為對(duì)大局來說是有益的,因?yàn)樗砻髁嗽擃愋偷氖袌?chǎng)需要非通用硬件。
有一個(gè)可能性是:Intel 對(duì)于芯片的興趣就如同對(duì)于 Nervana 的 Neon 軟件框架一樣,但 Wave Computing 的 Kim 說:“還有另一個(gè)會(huì)遭公司哄搶的需求未被滿足:開發(fā)板和加速器板。可當(dāng)我們與該領(lǐng)域的人交談時(shí)發(fā)現(xiàn),他們都希望有一個(gè)針對(duì)深度學(xué)習(xí)具體需求的單體系統(tǒng)。”
當(dāng)然,在 NVIDIA 的 DGX-1 appliance 中這種東西已經(jīng)存在,它配備了 Pascal generation GPUs ,且具備了進(jìn)行訓(xùn)練和推理的所有軟件。然而,Kim 說,他們已經(jīng)掌握了硬件和軟件技術(shù),且可以憑借更低的功耗和更短的訓(xùn)練時(shí)間(理論上無需 DGX-1 appliance)擊敗 Pascal。關(guān)鍵點(diǎn)是除了 DGX-1 外,它是深度學(xué)習(xí)采取的第一個(gè)系統(tǒng),毫無疑問,它肯定是基于一種新架構(gòu)。
Wave Computing 方法基于通過其DPU處理單元的數(shù)據(jù)流架構(gòu)。和 Nervana 一樣,Wave 的核心部位也有一個(gè)高度可擴(kuò)展的共享內(nèi)存架構(gòu)(有著混合內(nèi)存立方體或 HMC)。
“我們都認(rèn)為它們?cè)谏疃葘W(xué)習(xí)計(jì)算工作負(fù)載方面有一些相似點(diǎn),這意味著我們可以利用算法對(duì)于噪音和錯(cuò)誤的彈性,再加上并行數(shù)據(jù)和重用數(shù)據(jù)的機(jī)會(huì),讓通用硬件很輕松地占據(jù)優(yōu)勢(shì)。”
Wave 的業(yè)務(wù)并不在銷售加速板,它專注的是提供一個(gè)完整的排序和推理系統(tǒng)。這也正是 Kim 說的:數(shù)據(jù)中心網(wǎng)絡(luò)中的即插即用節(jié)點(diǎn),它可以本地支持 TensorFlow ,Hadoop,Spark,和 kafka 。系統(tǒng)會(huì)在 2017 年從 Q2 開始進(jìn)入到 1U 和 3U 配置。他們有一個(gè) 28 nm 的測(cè)試芯片,雖然在兩年前就交付驗(yàn)證了,但即將到來的 16 nm FinFET芯片現(xiàn)在正在流片,今年年底交付時(shí)將提供大幅提升。
Kim說:“第一個(gè) 28 nm 芯片可以將 16000 個(gè)處理單元置于一塊硅上,但 16 nm 的 FinFEt 芯片即將問世,它可以將 64000 個(gè)處理單元置于一塊硅上。”它首先將通過一個(gè)私有云,培養(yǎng)那些想要在系統(tǒng)變得可用之前就先行體驗(yàn)的早期用戶。“我們的商業(yè)模式,并不是使用我們的云端來供服務(wù),但是,需求非常高,而且私有云可以更快的選擇出那些是想要早期訪問的人。”
那么,數(shù)據(jù)流架構(gòu)(DPU)芯片和系統(tǒng)的內(nèi)部到底長什么樣?
獲取這里所有內(nèi)存的負(fù)載和最重要的內(nèi)存帶寬能力。實(shí)際上,它與數(shù)據(jù)流處理單元自身一樣重要,畢竟,如果無法移動(dòng)數(shù)據(jù)的話,即使是最聰明的處理器也沒什么用。當(dāng)然,這只是絕大部分的移動(dòng)指令,另一個(gè)主要特征是,用于深度學(xué)習(xí)工作負(fù)載的法案,在其數(shù)據(jù)重用的地方可以顯著提高效率。
每個(gè) 8 位 RISC 型處理器都有 RAM 指令和局部寄存器,以保存大量局部操作的內(nèi)存數(shù)據(jù)。這樣使得話,就無需移動(dòng)數(shù)據(jù),只要移動(dòng)指令。基本的指令序列包括:乘法、添加、轉(zhuǎn)移等。每個(gè)處理單元組都集合到有著16 元素的集群中,共享算術(shù)單元(每個(gè)有2個(gè))。這些集群組成了核心計(jì)算引擎,且可以聚集在一起單獨(dú)完成 8 位的工作,或者一起做 64 位的工作(可變長度的算法)。
它的主要原理很簡(jiǎn)單。將每一個(gè) DPUs 組合到一起,并完成多個(gè)任務(wù)。這是一個(gè) NIMD 框架(有兩種控制流),可以支持很高的內(nèi)存帶寬。第一代芯片在 6.7-8 GHz 之間跑來跑去,且在 150-200 瓦的范圍內(nèi),但 Kim 沒有評(píng)論冬季將出來下一代的芯片。每個(gè)數(shù)據(jù)流處理單元(DPUs)都成為了群集的一部分。它通過團(tuán)隊(duì)開發(fā)的戰(zhàn)術(shù)調(diào)度工具包進(jìn)行靜態(tài)調(diào)度,且不會(huì)遇到內(nèi)存一致問題,因?yàn)樗鞔_了:在DPU的特定部分運(yùn)行那些算法。
每個(gè) DPU 有 24 個(gè)“計(jì)算機(jī)器”,且從上面你可以看出,建筑能支持高度的隨機(jī)訪問存儲(chǔ)器 ,該存儲(chǔ)器有著 4 個(gè) HMC 和DDR4存儲(chǔ)器(由將這些鋪在一起的核心組成元素組成)。在 Wave 的 3U 配置下,他們可以把 16 臺(tái)這樣的機(jī)器結(jié)合在一起。
當(dāng)然,它與通用處理器之間的關(guān)鍵區(qū)別是:低精度與固定點(diǎn)的數(shù)學(xué)能力。Kim說:“我們專注于在多個(gè)線程中,處理單元級(jí)別上的高度并行操作。我們還專注于高內(nèi)存帶寬的能力。由于它是實(shí)時(shí)可重構(gòu)的,所以有可能得到支持隨機(jī)四舍五入的硬件,進(jìn)行混合精度的數(shù)學(xué)問題。這是深度學(xué)習(xí)向低精度發(fā)展的正確趨勢(shì),這樣可以節(jié)省內(nèi)存帶寬。只要你可以在更高的精度下積累結(jié)果,就可以保證準(zhǔn)確性,”
“整體的想法是,成為一個(gè)企業(yè)數(shù)據(jù)中心的 tensorflow 計(jì)算服務(wù)器節(jié)點(diǎn),所有的 tensorflow 模型都以最小的修改運(yùn)行,且分區(qū)也在一個(gè)可擴(kuò)展的數(shù)據(jù)流架構(gòu)高效運(yùn)行,這樣的話,整個(gè)系統(tǒng)都可以利用共享內(nèi)存,我們就可以更好的測(cè)量 GPU ,且不消耗 CPU 。”
Wave 方法的核心是:通過隨機(jī)四舍五入技術(shù)使用固定點(diǎn),和許多小的高并行計(jì)算元素。Kim指著IBM和斯坦福的研究說:“使用固定點(diǎn)和低精度算法,你只要小心轉(zhuǎn)動(dòng)浮點(diǎn)基本相同的收斂,”如下圖所示。
模型上進(jìn)行推測(cè)的成本不能太高,這也是深度壓縮工作為何如此重要的原因(就像來自斯坦福的 Song Han一樣利用 EIE 成果)。頂部綠色線采用的是低精度、無智能四舍五入的固定點(diǎn)。這項(xiàng)研究是在幾年前進(jìn)行的,那時(shí)人們認(rèn)為浮點(diǎn)數(shù)是必需的。
Kim 說:“事實(shí)上,如果你進(jìn)行隨機(jī)或?qū)?shù)為基礎(chǔ)的四舍五入,且使用固定點(diǎn)訓(xùn)練的話,其浮點(diǎn)幾乎都是一樣的。”底部的黑色線表示是固定狀態(tài)下紅色和藍(lán)色的浮點(diǎn)。
在系統(tǒng)水平的性能方面,所有廠商依然可以一起玩耍競(jìng)爭(zhēng),因?yàn)?NVIDIA 的 DGX-1 appliances 并沒有對(duì)很多框架進(jìn)行太大沖擊。然而,根據(jù) NVIDIA 深度學(xué)習(xí)盒中現(xiàn)有的 P100 性能數(shù)據(jù),以及Xeon 的實(shí)際基準(zhǔn),Wave 分享了以下指標(biāo)。
我們能想象出一些 Wave Computing 的可能結(jié)果,其中最有可能的是“一部分大公司以收購的方式,尋找可以在價(jià)格和性能擊敗 NVIDIA,且與深度學(xué)習(xí)掛鉤的系統(tǒng)。”當(dāng)然,在恰當(dāng)?shù)奈恢茫惨斜匦璧能浖褩!_@一領(lǐng)域,NVIDIA 已經(jīng)讓自己的 CUDA 庫與最知名的深度學(xué)習(xí)框架進(jìn)行對(duì)接。
Wave Computing 系統(tǒng)是個(gè)容器,它可以支持微服務(wù)方向結(jié)構(gòu) ,該結(jié)構(gòu)有著基于tensorflow的SDk 以運(yùn)行和執(zhí)行模型(有著用于tensorflow的Python和C++API ),和一個(gè)用于大型數(shù)據(jù)中心(想要支持不同的語言)的低水平 SDK。Kin 說:“目標(biāo)是為了使 tensorflow 模型在沒有匣子的情況下運(yùn)行更快 ,盡可能的遠(yuǎn)離用戶。”這聽起來很像 DGX-1 Appliance,然而,Kim 說“這將是有競(jìng)爭(zhēng)力的價(jià)格。”沒有人知道這是否意味著少幾千元,還是相同的價(jià)格。
需要注意的是,我們應(yīng)該指出 :Kim 并沒有說這是 CPU 或 GPU 的所有用戶的替代物。“在某些情況下,這樣的 tensorflow 分區(qū)方式,圖表的某些部分將在 DPU 上運(yùn)行,有一些在 CPU 上運(yùn)行、還有一些在 GPU 上運(yùn)行。我們的目標(biāo)是用最好的混合和匹配加快速度。”它在人購買的系統(tǒng)中是如何形成的,以及它是怎么實(shí)施的還有待觀察,但我們希望隨著重點(diǎn)轉(zhuǎn)移到新的結(jié)構(gòu),有人可以在明年結(jié)束之前搶到 Wave,且深度學(xué)習(xí)開始將其應(yīng)用于有真實(shí)用戶的實(shí)際系統(tǒng)中。