我拍了拍CPU說:人工智能搞不搞?

在過去的數年間,人工智能技術得到了前所未有的爆發式的增長。這主要歸功于萬物互聯的浪潮帶來的海量的數據、芯片技術革新帶來的算力的飛躍,還有計算機和數據科學領域對算法的不斷的優化。這也是我們常說的驅動AI技術發展的三大要素數據、算力和算法,而且這三大要素都是相互促進,缺一不可的。 那么作為芯片來說,它是承載這三大要素最重要的力量。除了人工智能專用芯片之外,其實還有很多通用的芯片類型,比如說GPU、FPGA、中央處理器CPU,這些芯片都在人工智能時代針對AI應用進行了架構優化,并且再次煥發了新生。今天我們就以英特爾的至強可擴展處理器為例,一起來看一下在云計算和數據中心領域,CPU 在人工智能時代的獨特優勢。
對這些人工智能芯片說,有5個衡量因素,分別是芯片的性能、靈活性、同構性、成本和功耗。那么接下來結合這個來和大家一起來看一下英特爾的至強可擴展處理器的一些技術特點,特別是它針對人工智能應用進行的優化和創新。那么這里既包含芯片指令集的擴展和硬件架構的升級,也包括軟件和生態系統的支持。
我們先來簡單看一下英特爾的至強可擴展處理器的一些技術特點。去年六月,英特爾正式發布了它的第三代制強可擴展處理器,代號為Cooper lake。那么和它的前一代產品也就是Cascade Lake 相比,Cooper Lake 單芯片集成了最高28個處理器核心,每個8路服務器平臺最高可以支持224個處理器核心,每個核心的基礎頻率可以達到3.1G赫茲,單核最高頻率可以達到4.3G赫茲。此外它還集成了一些其他的架構升級,比如增強了對傳統DDR4內存的帶寬和容量的支持,并且將英特爾的UPI,也就是超級通道互聯的通道數量增加到了6個,將CPU之間的通信帶寬和吞吐量提升了一倍。除此之外也提升了對硬件安全性、虛擬化還有網絡連接等等,這些數據中心常用技術的硬件支持等。值得我們注意的是,這個Cooper Lake 是特別針對4路或者是8路的服務器產品進行打造的第三代至強可擴展處理器。
對于更加常見的單路和雙路服務器,英特爾也即將推出代號為Ice Lake 的處理器,它將基于英特爾最新的10納米工藝進行制造,內核采用了sunny cove 的微架構。

值得注意的是,英特爾的第三代至強可擴展處理器就針對人工智能應用做了特別的架構優化和設計。 一個是進一步的優化了英特爾的深度學習加速技術DL-Boost,首次引入了對BF16指令集的支持;另外一個就是增加了對第二代傲騰持久內存的支持。接下來我們就具體的來看一下,為什么這兩點提升對于AI應用來說特別的重要。
首先我們來看一下DL-Boost。從第二代至強開始,英特爾就在CPU 里加入了深度學習加速技術。它的核心就是對AVX-512矢量神經網絡指令的硬件支持,從而大幅提升了對AI 推理應用的加速。簡單來說,它的本質有兩點,一個是低精度的數據表示不會對深度學習的推理結果和精度造成太大的影響,但是會極大的提升硬件的性能和效率;第二個就是可以為某些類型的AI 應用。比如推理應用,專門設計更有效的指令集合硬件來支持這些應用的高效運行。那么在深度神經網絡的應用里,使用低精度的數據表示已經是一個研究比較成熟的領域了。相比使用32位浮點數進行運算,我們可以采用更低的數據精度,甚至也可以采用整形數來進行運算。比如對于很多應用來說,特別是涉及我們人類感官的應用。比如看一個圖片,或者是聽一段聲音等等。由于我們人類的感知能力并沒有那么精確,所以推理的精確度稍許有那么一些差別,其實并沒有太大的關系,但是降低數據精度會對AI芯片的設計和性能帶來很多的好處。

比如可以在芯片面積不變的情況下,大幅提升運算單元的數量;或者在性能要求不變的情況下,采取更少的芯片面積,從而降低功耗。 此外,這樣也會減少數據傳輸的數據量,節約了帶寬,也提升了吞吐量。那么基于這個理論,就衍生出了很多非常有趣的AI芯片架構設計,比如一些AI的專用芯片都加入了對不同的數據精度的硬件支持。那么對于至強可擴展處理器來說也是如此。比如AVX-512指令集,它就將數據位寬增加到了512位,這樣就可以在單位時間里處理更多的數據,這樣就可以在CPU上為AI應用提供更好的性能支持。
不僅如此,通過深度學習加速技術,我們還可以將指令進一步的打包。比如用一條指令就能完成之前三條指令才能完成的運算,這樣就成倍的提升了系統性能。第二代至強可擴展處理器里首次引入了深度學習加速技術,它主要用來加速推理應用。那么從第三代至強開始,英特爾又在DL-Boost 里加入了對BF16的硬件支持,從而兼顧了推理和訓練的加速。那么使用BF16有什么好處呢?和8位整形數相比,BF16的精度更高,而且有的大得多的動態范圍。那么和32位浮點數相比呢,BF16雖然精度有所損失,但是損失并不多,動態范圍也類似,但是所需的數據位寬則要小很多??梢哉fBF16這種數據表示可以在精度、面積、性能等衡量標準里取得非常好的折中。這也是為什么要在第三代至強可擴展處理器里支持這種數據表示的主要原因。

和前一代CPU相比,第三代至強可擴展處理器的AI推理性能可以提升高達1.9倍,訓練性能也可以提升達1.93倍。業界也有很多公司在使用和部署第三代至強可擴展處理器,以及前面介紹的深度學習加速技術。比如阿里云就利用對BF16的支持,將BERT模型的推理性能提升到原來的1.8倍以上,并且沒有準確率的下降。
說完數據的計算,我們接下來再看一下數據的存儲。芯片設計的一個大的原則就是存儲數據的地方離使用數據的地方越近,那么性能就越高,功耗就越低。那么對于人工智能芯片來說,不管是對于訓練還是推理,都需要對大量的數據進行處理。這一方面需要有大容量的存儲技術作為支持,另一方面也需要更大的內存帶寬以及更快的數據傳輸速度??傮w來說,我們在計算機里常見的存儲器類型可以分成這么幾個類別。一個是DRAM,也就是我們常說的內存,它的性能最高,數據讀寫的延時最低,但是容量十分有限,而且價格昂貴。更重要的是一旦斷電,DRAM里的數據就會丟失。相比之下像機械硬盤、固態硬盤之類的存儲方式
雖然容量夠大,價格夠便宜,而且具備數據持久性。但是它最大的問題就是訪問速度。相比于DRAM來說要慢幾個量級,所以很自然的我們就會想能否有另外一個量大實惠的存儲方式,既能有大容量、低延時,也能保證數據的持久性,而且價格也可以接受。那么一個可行的方案呢,就是這個英特爾的傲騰Optane持久內存。奧騰持久內存就像是冰箱,它既有大的容量,又能保證數據的持久性,而且也能夠提供快速的數據讀寫性能。傲騰的單條容量最高可以達到512G ,而且和傳統的DDR4內存的插槽相兼容。當搭配第三代至強可擴展處理器使用的時候,單路內存的總容量最高可以達到4.5TB,遠高于普通的DRAM內存。值得注意的是,傲騰還有多種工作模式。首先就是內存模式。這個時候它就和DRAM沒有本質的區別,相當于對系統的內存進行了一個擴展。此外它還有一個叫App direct的模式,可以實現較大內存容量和數據的持久性,這樣軟件就可以將DRAM和傲騰作為內存的兩層來進行訪問。硬盤之類的存儲設備是按塊來讀寫數據的。而傲騰是可以按字節來進行選址的。這就好比我們去超市買西紅柿,可能一次要買很多很多,但是從冰箱里拿的時候可以用多少就拿多少,這樣就保證了數據讀寫的效率和性能。

對數據進行計算和存儲的硬件說完了,我們再來看看軟件,以及圍繞著軟硬件而搭建的生態系統。不管是什么芯片,不管是什么應用場景,最終使用它的都是開發者,是人。所以軟件和生態也是非常重要的環節。舉例來說,英特爾有一個叫做Analytics Zoo 的開源平臺,它將大數據分析人工智能應用,包括數據的處理、模型的訓練和推理等等這些過程進行了一個整合。它可以把像這個Tensor Flow、 PyTorch或者是Open VINO這些框架,還有開發工具和軟件等等集成到一個統一的數據分析流水線里。 用于分布式的訓練或者是預測,這樣讓用戶更方便的構建端到端的深度學習應用。這個分析流水線根據之前處理器進行了深度的優化,可以充分的利用前面介紹的那些針對AI應用進行的計算和存儲架構的革新,并且可以方便的進行計算集群的部署和擴展。

比如美的就采用了Analytics Zoo來搭建了工業視覺檢測的云平臺,來加速產品缺陷檢測的效率,并且將模型推理的速度提升了16倍。那么作為構建廣泛生態系統的一部分,英特爾硬件產品除了有至強可擴展處理器和傲騰持久內存,還有基于x e 架構的數據中心,專用的GPU系列,還有現場可編程芯片FPGA,以及一系列人工智能專用芯片。
*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。