1
導讀:在過去的一個月中,Intel收購了深度學習芯片公司 Nervana Systems ,以及移動和嵌入式機器學習公司 Movidius,給未來的深度學習下了重注。而Intel所做的這一切,正是在為未來適應深度學習的數據流(DPU)架構升級布局。

這些新公司將一起解決英特爾仍在形成的難題:捕捉未來深度學習領域——這塊預估達到數萬億美元的蛋糕。而這個艱巨的任務,都將通過 Intel 自己的 Knights Mill 在機器學習代碼和工具方面的成果,加上軟件優化的工作來實現。而與此同時,NVIDIA 正在加強其自產的GPU訓練和推理芯片市場,以及配備了最新 Pascal GPU 和所需深度學習書庫的自產硬件市場。
Intel 最近令人驚訝的收購行為,也成為了重磅頭條,而此舉使得 NVIDIA 更難說明 GPU 該如何加速(目前在模型訓練占主導地位的計算引擎),想要在這個新興市場上占有一席之地,他們還要更加努力。然而在過去的兩年中,有很多新成員加入了該領域,這無疑是雪上加霜。
深度學習芯片新貴宣揚的理念是:通用體系架構(包括GPU)無法在低精度、固定點及專業性上與之比擬。事實上,我們可能進入到計算機體系結構的“寒武紀爆炸”時代,它由深度學習方面的新需求形成。不過,我們可以設想在短時間內,應用程序和用戶的數量足夠多,實際上就能確保芯片初創公司在等待大爆發時不會玩完。
這些新貴中,其中一家專注深度學習的初創公司名為 Wave Computing,它在 Nervana 系統方面有很多優點,這些都可以使它成為 Intel(或者其它公司)的最佳收購對象。
雖然 Wave Computing 的技術和執行方法不同于 Nervana,但公認的是:在有著低級隨機舍入和其他相同技術的超低精度硬件上,進行大規模深度學習訓練時,它在實用性上略勝一籌。同時該公司的 Jin Kim 告訴 The Next Platform,他們看到了自身技術對于如英特爾這類公司的價值所在。Nervana 的采購行為對大局來說是有益的,因為它表明了該類型的市場需要非通用硬件。
有一個可能性是:Intel 對于芯片的興趣就如同對于 Nervana 的 Neon 軟件框架一樣,但 Wave Computing 的 Kim 說:“還有另一個會遭公司哄搶的需求未被滿足:開發板和加速器板。可當我們與該領域的人交談時發現,他們都希望有一個針對深度學習具體需求的單體系統。”
當然,在 NVIDIA 的 DGX-1 appliance 中這種東西已經存在,它配備了 Pascal generation GPUs ,且具備了進行訓練和推理的所有軟件。然而,Kim 說,他們已經掌握了硬件和軟件技術,且可以憑借更低的功耗和更短的訓練時間(理論上無需 DGX-1 appliance)擊敗 Pascal。關鍵點是除了 DGX-1 外,它是深度學習采取的第一個系統,毫無疑問,它肯定是基于一種新架構。
Wave Computing 方法基于通過其DPU處理單元的數據流架構。和 Nervana 一樣,Wave 的核心部位也有一個高度可擴展的共享內存架構(有著混合內存立方體或 HMC)。
“我們都認為它們在深度學習計算工作負載方面有一些相似點,這意味著我們可以利用算法對于噪音和錯誤的彈性,再加上并行數據和重用數據的機會,讓通用硬件很輕松地占據優勢。”
Wave 的業務并不在銷售加速板,它專注的是提供一個完整的排序和推理系統。這也正是 Kim 說的:數據中心網絡中的即插即用節點,它可以本地支持 TensorFlow ,Hadoop,Spark,和 kafka 。系統會在 2017 年從 Q2 開始進入到 1U 和 3U 配置。他們有一個 28 nm 的測試芯片,雖然在兩年前就交付驗證了,但即將到來的 16 nm FinFET芯片現在正在流片,今年年底交付時將提供大幅提升。
Kim說:“第一個 28 nm 芯片可以將 16000 個處理單元置于一塊硅上,但 16 nm 的 FinFEt 芯片即將問世,它可以將 64000 個處理單元置于一塊硅上。”它首先將通過一個私有云,培養那些想要在系統變得可用之前就先行體驗的早期用戶。“我們的商業模式,并不是使用我們的云端來供服務,但是,需求非常高,而且私有云可以更快的選擇出那些是想要早期訪問的人。”

獲取這里所有內存的負載和最重要的內存帶寬能力。實際上,它與數據流處理單元自身一樣重要,畢竟,如果無法移動數據的話,即使是最聰明的處理器也沒什么用。當然,這只是絕大部分的移動指令,另一個主要特征是,用于深度學習工作負載的法案,在其數據重用的地方可以顯著提高效率。
每個 8 位 RISC 型處理器都有 RAM 指令和局部寄存器,以保存大量局部操作的內存數據。這樣使得話,就無需移動數據,只要移動指令。基本的指令序列包括:乘法、添加、轉移等。每個處理單元組都集合到有著16 元素的集群中,共享算術單元(每個有2個)。這些集群組成了核心計算引擎,且可以聚集在一起單獨完成 8 位的工作,或者一起做 64 位的工作(可變長度的算法)。

它的主要原理很簡單。將每一個 DPUs 組合到一起,并完成多個任務。這是一個 NIMD 框架(有兩種控制流),可以支持很高的內存帶寬。第一代芯片在 6.7-8 GHz 之間跑來跑去,且在 150-200 瓦的范圍內,但 Kim 沒有評論冬季將出來下一代的芯片。每個數據流處理單元(DPUs)都成為了群集的一部分。它通過團隊開發的戰術調度工具包進行靜態調度,且不會遇到內存一致問題,因為它明確了:在DPU的特定部分運行那些算法。
每個 DPU 有 24 個“計算機器”,且從上面你可以看出,建筑能支持高度的隨機訪問存儲器 ,該存儲器有著 4 個 HMC 和DDR4存儲器(由將這些鋪在一起的核心組成元素組成)。在 Wave 的 3U 配置下,他們可以把 16 臺這樣的機器結合在一起。
當然,它與通用處理器之間的關鍵區別是:低精度與固定點的數學能力。Kim說:“我們專注于在多個線程中,處理單元級別上的高度并行操作。我們還專注于高內存帶寬的能力。由于它是實時可重構的,所以有可能得到支持隨機四舍五入的硬件,進行混合精度的數學問題。這是深度學習向低精度發展的正確趨勢,這樣可以節省內存帶寬。只要你可以在更高的精度下積累結果,就可以保證準確性,”
“整體的想法是,成為一個企業數據中心的 tensorflow 計算服務器節點,所有的 tensorflow 模型都以最小的修改運行,且分區也在一個可擴展的數據流架構高效運行,這樣的話,整個系統都可以利用共享內存,我們就可以更好的測量 GPU ,且不消耗 CPU 。”
Wave 方法的核心是:通過隨機四舍五入技術使用固定點,和許多小的高并行計算元素。Kim指著IBM和斯坦福的研究說:“使用固定點和低精度算法,你只要小心轉動浮點基本相同的收斂,”如下圖所示。

模型上進行推測的成本不能太高,這也是深度壓縮工作為何如此重要的原因(就像來自斯坦福的 Song Han一樣利用 EIE 成果)。頂部綠色線采用的是低精度、無智能四舍五入的固定點。這項研究是在幾年前進行的,那時人們認為浮點數是必需的。
Kim 說:“事實上,如果你進行隨機或對數為基礎的四舍五入,且使用固定點訓練的話,其浮點幾乎都是一樣的。”底部的黑色線表示是固定狀態下紅色和藍色的浮點。
在系統水平的性能方面,所有廠商依然可以一起玩耍 競爭,因為 NVIDIA 的 DGX-1 appliances 并沒有對很多框架進行太大沖擊。然而,根據 NVIDIA 深度學習盒中現有的 P100 性能數據,以及Xeon 的實際基準,Wave 分享了以下指標。

我們能想象出一些 Wave Computing 的可能結果,其中最有可能的是“一部分大公司以收購的方式,尋找可以在價格和性能擊敗 NVIDIA,且與深度學習掛鉤的系統。”當然,在恰當的位置,它也要有必需的軟件堆棧。這一領域,NVIDIA 已經讓自己的 CUDA 庫與最知名的深度學習框架進行對接。
Wave Computing 系統是個容器,它可以支持微服務方向結構 ,該結構有著基于tensorflow的SDk 以運行和執行模型(有著用于tensorflow的Python和C++API ),和一個用于大型數據中心(想要支持不同的語言)的低水平 SDK。Kin 說:“目標是為了使 tensorflow 模型在沒有匣子的情況下運行更快 ,盡可能的遠離用戶。”這聽起來很像 DGX-1 Appliance,然而,Kim 說“這將是有競爭力的價格。”沒有人知道這是否意味著少幾千元,還是相同的價格。
需要注意的是,我們應該指出 :Kim 并沒有說這是 CPU 或 GPU 的所有用戶的替代物。“在某些情況下,這樣的 tensorflow 分區方式,圖表的某些部分將在 DPU 上運行,有一些在 CPU 上運行、還有一些在 GPU 上運行。我們的目標是用最好的混合和匹配加快速度。”它在人購買的系統中是如何形成的,以及它是怎么實施的還有待觀察,但我們希望隨著重點轉移到新的結構,有人可以在明年結束之前搶到 Wave,且深度學習開始將其應用于有真實用戶的實際系統中。
推薦閱讀:
雷峰網原創文章,未經授權禁止轉載。詳情見轉載須知。