我拍了拍CPU說:人工智能搞不搞?
在過去的數(shù)年間,人工智能技術(shù)得到了前所未有的爆發(fā)式的增長。這主要歸功于萬物互聯(lián)的浪潮帶來的海量的數(shù)據(jù)、芯片技術(shù)革新帶來的算力的飛躍,還有計算機和數(shù)據(jù)科學(xué)領(lǐng)域?qū)λ惴ǖ牟粩嗟膬?yōu)化。這也是我們常說的驅(qū)動AI技術(shù)發(fā)展的三大要素數(shù)據(jù)、算力和算法,而且這三大要素都是相互促進,缺一不可的。 那么作為芯片來說,它是承載這三大要素最重要的力量。除了人工智能專用芯片之外,其實還有很多通用的芯片類型,比如說GPU、FPGA、中央處理器CPU,這些芯片都在人工智能時代針對AI應(yīng)用進行了架構(gòu)優(yōu)化,并且再次煥發(fā)了新生。今天我們就以英特爾的至強可擴展處理器為例,一起來看一下在云計算和數(shù)據(jù)中心領(lǐng)域,CPU 在人工智能時代的獨特優(yōu)勢。
對這些人工智能芯片說,有5個衡量因素,分別是芯片的性能、靈活性、同構(gòu)性、成本和功耗。那么接下來結(jié)合這個來和大家一起來看一下英特爾的至強可擴展處理器的一些技術(shù)特點,特別是它針對人工智能應(yīng)用進行的優(yōu)化和創(chuàng)新。那么這里既包含芯片指令集的擴展和硬件架構(gòu)的升級,也包括軟件和生態(tài)系統(tǒng)的支持。
我們先來簡單看一下英特爾的至強可擴展處理器的一些技術(shù)特點。去年六月,英特爾正式發(fā)布了它的第三代制強可擴展處理器,代號為Cooper lake。那么和它的前一代產(chǎn)品也就是Cascade Lake 相比,Cooper Lake 單芯片集成了最高28個處理器核心,每個8路服務(wù)器平臺最高可以支持224個處理器核心,每個核心的基礎(chǔ)頻率可以達到3.1G赫茲,單核最高頻率可以達到4.3G赫茲。此外它還集成了一些其他的架構(gòu)升級,比如增強了對傳統(tǒng)DDR4內(nèi)存的帶寬和容量的支持,并且將英特爾的UPI,也就是超級通道互聯(lián)的通道數(shù)量增加到了6個,將CPU之間的通信帶寬和吞吐量提升了一倍。除此之外也提升了對硬件安全性、虛擬化還有網(wǎng)絡(luò)連接等等,這些數(shù)據(jù)中心常用技術(shù)的硬件支持等。值得我們注意的是,這個Cooper Lake 是特別針對4路或者是8路的服務(wù)器產(chǎn)品進行打造的第三代至強可擴展處理器。
對于更加常見的單路和雙路服務(wù)器,英特爾也即將推出代號為Ice Lake 的處理器,它將基于英特爾最新的10納米工藝進行制造,內(nèi)核采用了sunny cove 的微架構(gòu)。
值得注意的是,英特爾的第三代至強可擴展處理器就針對人工智能應(yīng)用做了特別的架構(gòu)優(yōu)化和設(shè)計。 一個是進一步的優(yōu)化了英特爾的深度學(xué)習加速技術(shù)DL-Boost,首次引入了對BF16指令集的支持;另外一個就是增加了對第二代傲騰持久內(nèi)存的支持。接下來我們就具體的來看一下,為什么這兩點提升對于AI應(yīng)用來說特別的重要。
首先我們來看一下DL-Boost。從第二代至強開始,英特爾就在CPU 里加入了深度學(xué)習加速技術(shù)。它的核心就是對AVX-512矢量神經(jīng)網(wǎng)絡(luò)指令的硬件支持,從而大幅提升了對AI 推理應(yīng)用的加速。簡單來說,它的本質(zhì)有兩點,一個是低精度的數(shù)據(jù)表示不會對深度學(xué)習的推理結(jié)果和精度造成太大的影響,但是會極大的提升硬件的性能和效率;第二個就是可以為某些類型的AI 應(yīng)用。比如推理應(yīng)用,專門設(shè)計更有效的指令集合硬件來支持這些應(yīng)用的高效運行。那么在深度神經(jīng)網(wǎng)絡(luò)的應(yīng)用里,使用低精度的數(shù)據(jù)表示已經(jīng)是一個研究比較成熟的領(lǐng)域了。相比使用32位浮點數(shù)進行運算,我們可以采用更低的數(shù)據(jù)精度,甚至也可以采用整形數(shù)來進行運算。比如對于很多應(yīng)用來說,特別是涉及我們?nèi)祟惛泄俚膽?yīng)用。比如看一個圖片,或者是聽一段聲音等等。由于我們?nèi)祟惖母兄芰Σ]有那么精確,所以推理的精確度稍許有那么一些差別,其實并沒有太大的關(guān)系,但是降低數(shù)據(jù)精度會對AI芯片的設(shè)計和性能帶來很多的好處。
比如可以在芯片面積不變的情況下,大幅提升運算單元的數(shù)量;或者在性能要求不變的情況下,采取更少的芯片面積,從而降低功耗。 此外,這樣也會減少數(shù)據(jù)傳輸?shù)臄?shù)據(jù)量,節(jié)約了帶寬,也提升了吞吐量。那么基于這個理論,就衍生出了很多非常有趣的AI芯片架構(gòu)設(shè)計,比如一些AI的專用芯片都加入了對不同的數(shù)據(jù)精度的硬件支持。那么對于至強可擴展處理器來說也是如此。比如AVX-512指令集,它就將數(shù)據(jù)位寬增加到了512位,這樣就可以在單位時間里處理更多的數(shù)據(jù),這樣就可以在CPU上為AI應(yīng)用提供更好的性能支持。
不僅如此,通過深度學(xué)習加速技術(shù),我們還可以將指令進一步的打包。比如用一條指令就能完成之前三條指令才能完成的運算,這樣就成倍的提升了系統(tǒng)性能。第二代至強可擴展處理器里首次引入了深度學(xué)習加速技術(shù),它主要用來加速推理應(yīng)用。那么從第三代至強開始,英特爾又在DL-Boost 里加入了對BF16的硬件支持,從而兼顧了推理和訓(xùn)練的加速。那么使用BF16有什么好處呢?和8位整形數(shù)相比,BF16的精度更高,而且有的大得多的動態(tài)范圍。那么和32位浮點數(shù)相比呢,BF16雖然精度有所損失,但是損失并不多,動態(tài)范圍也類似,但是所需的數(shù)據(jù)位寬則要小很多。可以說BF16這種數(shù)據(jù)表示可以在精度、面積、性能等衡量標準里取得非常好的折中。這也是為什么要在第三代至強可擴展處理器里支持這種數(shù)據(jù)表示的主要原因。
和前一代CPU相比,第三代至強可擴展處理器的AI推理性能可以提升高達1.9倍,訓(xùn)練性能也可以提升達1.93倍。業(yè)界也有很多公司在使用和部署第三代至強可擴展處理器,以及前面介紹的深度學(xué)習加速技術(shù)。比如阿里云就利用對BF16的支持,將BERT模型的推理性能提升到原來的1.8倍以上,并且沒有準確率的下降。
說完數(shù)據(jù)的計算,我們接下來再看一下數(shù)據(jù)的存儲。芯片設(shè)計的一個大的原則就是存儲數(shù)據(jù)的地方離使用數(shù)據(jù)的地方越近,那么性能就越高,功耗就越低。那么對于人工智能芯片來說,不管是對于訓(xùn)練還是推理,都需要對大量的數(shù)據(jù)進行處理。這一方面需要有大容量的存儲技術(shù)作為支持,另一方面也需要更大的內(nèi)存帶寬以及更快的數(shù)據(jù)傳輸速度??傮w來說,我們在計算機里常見的存儲器類型可以分成這么幾個類別。一個是DRAM,也就是我們常說的內(nèi)存,它的性能最高,數(shù)據(jù)讀寫的延時最低,但是容量十分有限,而且價格昂貴。更重要的是一旦斷電,DRAM里的數(shù)據(jù)就會丟失。相比之下像機械硬盤、固態(tài)硬盤之類的存儲方式
雖然容量夠大,價格夠便宜,而且具備數(shù)據(jù)持久性。但是它最大的問題就是訪問速度。相比于DRAM來說要慢幾個量級,所以很自然的我們就會想能否有另外一個量大實惠的存儲方式,既能有大容量、低延時,也能保證數(shù)據(jù)的持久性,而且價格也可以接受。那么一個可行的方案呢,就是這個英特爾的傲騰Optane持久內(nèi)存。奧騰持久內(nèi)存就像是冰箱,它既有大的容量,又能保證數(shù)據(jù)的持久性,而且也能夠提供快速的數(shù)據(jù)讀寫性能。傲騰的單條容量最高可以達到512G ,而且和傳統(tǒng)的DDR4內(nèi)存的插槽相兼容。當搭配第三代至強可擴展處理器使用的時候,單路內(nèi)存的總?cè)萘孔罡呖梢赃_到4.5TB,遠高于普通的DRAM內(nèi)存。值得注意的是,傲騰還有多種工作模式。首先就是內(nèi)存模式。這個時候它就和DRAM沒有本質(zhì)的區(qū)別,相當于對系統(tǒng)的內(nèi)存進行了一個擴展。此外它還有一個叫App direct的模式,可以實現(xiàn)較大內(nèi)存容量和數(shù)據(jù)的持久性,這樣軟件就可以將DRAM和傲騰作為內(nèi)存的兩層來進行訪問。硬盤之類的存儲設(shè)備是按塊來讀寫數(shù)據(jù)的。而傲騰是可以按字節(jié)來進行選址的。這就好比我們?nèi)コ匈I西紅柿,可能一次要買很多很多,但是從冰箱里拿的時候可以用多少就拿多少,這樣就保證了數(shù)據(jù)讀寫的效率和性能。
對數(shù)據(jù)進行計算和存儲的硬件說完了,我們再來看看軟件,以及圍繞著軟硬件而搭建的生態(tài)系統(tǒng)。不管是什么芯片,不管是什么應(yīng)用場景,最終使用它的都是開發(fā)者,是人。所以軟件和生態(tài)也是非常重要的環(huán)節(jié)。舉例來說,英特爾有一個叫做Analytics Zoo 的開源平臺,它將大數(shù)據(jù)分析人工智能應(yīng)用,包括數(shù)據(jù)的處理、模型的訓(xùn)練和推理等等這些過程進行了一個整合。它可以把像這個Tensor Flow、 PyTorch或者是Open VINO這些框架,還有開發(fā)工具和軟件等等集成到一個統(tǒng)一的數(shù)據(jù)分析流水線里。 用于分布式的訓(xùn)練或者是預(yù)測,這樣讓用戶更方便的構(gòu)建端到端的深度學(xué)習應(yīng)用。這個分析流水線根據(jù)之前處理器進行了深度的優(yōu)化,可以充分的利用前面介紹的那些針對AI應(yīng)用進行的計算和存儲架構(gòu)的革新,并且可以方便的進行計算集群的部署和擴展。
比如美的就采用了Analytics Zoo來搭建了工業(yè)視覺檢測的云平臺,來加速產(chǎn)品缺陷檢測的效率,并且將模型推理的速度提升了16倍。那么作為構(gòu)建廣泛生態(tài)系統(tǒng)的一部分,英特爾硬件產(chǎn)品除了有至強可擴展處理器和傲騰持久內(nèi)存,還有基于x e 架構(gòu)的數(shù)據(jù)中心,專用的GPU系列,還有現(xiàn)場可編程芯片F(xiàn)PGA,以及一系列人工智能專用芯片。
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。