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