除了寫(xiě)文章,吃應(yīng)該是我平生另一大愛(ài)好。世界進(jìn)入新常態(tài)之前,我的大部分時(shí)間可能都放在了吃上。
每個(gè)留學(xué)生都有自己的拿手菜,本來(lái)以為去新東方學(xué)的是英語(yǔ),結(jié)果學(xué)的是廚師。我的廚藝屬于“還可以”的那個(gè)級(jí)別,類(lèi)似于打球的時(shí)候遇到一個(gè)人說(shuō):哥們加一個(gè),我不太會(huì)打。
雖然我嘗試做過(guò)很多菜,但有一種“菜”我一直沒(méi)做過(guò),那就是壽司。對(duì)于很多人來(lái)說(shuō),壽司就是酸米飯加芥末加生魚(yú)片,我曾經(jīng)也一度這么覺(jué)得,直到看了一部紅極一時(shí)的紀(jì)錄片《壽司之神》。
小野二郎是世界上年紀(jì)最大的米其林三星主廚,他和英國(guó)的“地獄廚神”Gordon Ramsay涉獵廣泛、高舉高打的風(fēng)格不同,老爺子一輩子就鉆研了一件事:壽司。
在這么垂直的領(lǐng)域做到世界頂級(jí),靠的就是匠人精神。
說(shuō)小野二郎是壽司之神,也有點(diǎn)神乎其神了。說(shuō)白了,老爺子也不過(guò)是個(gè)普通人。如果我們拋開(kāi)那些外在的包裝和炒作,沉淀下來(lái)去觀察他做的事情,就不難發(fā)現(xiàn)匠人精神的本質(zhì),其實(shí)就是專(zhuān)業(yè)和堅(jiān)持。
捏壽司是這樣,各行各業(yè)也是這樣,芯片行業(yè)也不例外。
推動(dòng)行業(yè)發(fā)展的,或許并不是圖靈那樣可遇不可求的天才,而是更多『匠人』對(duì)極致的追求,特別是他們?cè)谀硞€(gè)小領(lǐng)域不斷地深耕、優(yōu)化、提升。
打個(gè)最簡(jiǎn)單的比方,天才創(chuàng)造了開(kāi)天辟地的理論,就像是1,但需要無(wú)數(shù)匠人在后面補(bǔ)上0,才能讓這個(gè)數(shù)變的越來(lái)越大。
當(dāng)FPGA在1984年誕生的時(shí)候,就像是一個(gè)不起眼的1,沒(méi)有人會(huì)想到這將成為一個(gè)價(jià)值幾十億美元的產(chǎn)業(yè)。不到四十年的時(shí)間,后面加了十個(gè)0。
這就是指數(shù)級(jí)的爆發(fā)。
摩爾定律描述的就是指數(shù)級(jí)的規(guī)律,而FPGA一直都是體現(xiàn)摩爾定律的最好例子。接下來(lái)我們就從FPGA存儲(chǔ)器這個(gè)小領(lǐng)域,看看匠人精神是怎么用在這里的。
1、新型存儲(chǔ)架構(gòu)
英特爾總結(jié)過(guò),F(xiàn)PGA現(xiàn)在和未來(lái)的發(fā)展趨勢(shì)只有三個(gè):
傳輸更快,存儲(chǔ)更多,計(jì)算更廣。
Move fast, Store more, Process everything.
所以,就像不要覺(jué)得壽司只是酸米飯配芥末一樣,再也不要覺(jué)得FPGA只是用來(lái)做芯片原型驗(yàn)證的了。FPGA早就被用作高能效的硬件加速單元,去加速你能想到的所有應(yīng)用了。
FPGA之所以有這樣的能力,是由它本身的結(jié)構(gòu)決定的。比如FPGA有著很強(qiáng)的硬件并行性,能像GPU那樣進(jìn)行并行運(yùn)算,但功耗卻低很多;它還能靈活地調(diào)整數(shù)據(jù)的精度,讓神經(jīng)網(wǎng)絡(luò)的壓縮和優(yōu)化成為現(xiàn)實(shí)。
同樣重要的是,F(xiàn)PGA能提供極高的內(nèi)存帶寬、同時(shí)兼顧計(jì)算的效率,從而解決很多應(yīng)用都存在的內(nèi)存瓶頸問(wèn)題。
而存儲(chǔ),就是FPGA上最體現(xiàn)「匠人」功力的地方。
傳統(tǒng)的FPGA存儲(chǔ)單元并不是只有一種結(jié)構(gòu),而是分成下面兩類(lèi):
片上內(nèi)存:如M20K、MLAB等
片外內(nèi)存:如DDR5、LPDDR5等
片上內(nèi)存速度最快、容量最小、造價(jià)最高;片外內(nèi)存速度慢、容量大、造價(jià)低。
這樣的結(jié)構(gòu),并不是某個(gè)天才一拍腦門(mén)想出來(lái)的。最早的FPGA只支持片上內(nèi)存。但是隨著需要處理的數(shù)據(jù)越來(lái)越多,就慢慢加入了對(duì)片外內(nèi)存的支持,并且逐漸成為了主流FPGA的標(biāo)配。
匠人精神的本質(zhì),就是不斷發(fā)現(xiàn)問(wèn)題、解決問(wèn)題、并且極致優(yōu)化的過(guò)程。
在這個(gè)過(guò)程中人們逐漸發(fā)現(xiàn),片上和片外這兩種內(nèi)存之間,仍然存在著一個(gè)巨大而關(guān)鍵的缺口:對(duì)于很多數(shù)據(jù)密集型的應(yīng)用,它們的數(shù)據(jù)量比片上內(nèi)存的容量大得多,但對(duì)于帶寬的需求又比片外內(nèi)存能提供的大得多。
這時(shí)出現(xiàn)了第三種內(nèi)存類(lèi)型:封裝內(nèi)存。這種內(nèi)存的最典型代表,就是HBM。
典型的存儲(chǔ)層次結(jié)構(gòu)
它之所以叫「封裝內(nèi)存」,是因?yàn)閮?nèi)存顆粒與FPGA被集成在同一個(gè)芯片封裝里了。比如在英特爾最新的Agilex™ M系列FPGA里,就在芯片的上下兩側(cè)通過(guò)EMIB技術(shù)集成了兩個(gè)HBM2e,這也是業(yè)界第一個(gè)集成了HBM2e高帶寬存儲(chǔ)器的FPGA。這樣不僅減小了芯片的尺寸,還能進(jìn)一步降低功耗和數(shù)據(jù)傳輸的時(shí)延。
英特爾Agilex-M FPGA平面圖
一個(gè)有趣的小知識(shí),Agilex™ M的“M”,就是Memory存儲(chǔ)器的意思。也就是說(shuō),Agilex™ M就是專(zhuān)門(mén)為高性能存儲(chǔ)而優(yōu)化的FPGA芯片。
和傳統(tǒng)的芯片結(jié)構(gòu)不同,HBM2e是一種三維結(jié)構(gòu)。如果說(shuō)傳統(tǒng)芯片是平房,那么HBM2e就是大樓。所以在容量這個(gè)維度,HBM2e秒殺片上內(nèi)存。比如它可以包含4層或8層,每層提供2GB內(nèi)存,再考慮到一個(gè)Agilex™ M里包含兩個(gè)HBM2e,這樣FPGA就能提供高達(dá)32GB的內(nèi)存容量,比片上內(nèi)存多兩個(gè)數(shù)量級(jí)。
從內(nèi)存帶寬這個(gè)維度來(lái)看,每個(gè)HBM2e能提供410Gbps的內(nèi)存帶寬,比業(yè)界前沿的DDR5和GDDR6分別高18倍、和高7倍,比更加“主流”的DDR4等等更不知道要高到哪里去了。
有了HBM,看起來(lái)存儲(chǔ)的問(wèn)題已經(jīng)解決了?還遠(yuǎn)遠(yuǎn)沒(méi)有:HBM只是第一步。
2、新型非易失性存儲(chǔ)
對(duì)于片外內(nèi)存,新的問(wèn)題又出現(xiàn)了。對(duì)于很多應(yīng)用來(lái)說(shuō),DDR最大的問(wèn)題并不是慢,而是斷電后數(shù)據(jù)會(huì)消失。這時(shí)人們就不得不采用閃存這樣的“非易失性”存儲(chǔ),來(lái)保存那些關(guān)鍵數(shù)據(jù)。但硬幣的另一面,是閃存的性能比DDR還要低。
為了解決這個(gè)問(wèn)題,英特爾提供了一種名叫“傲騰”的新型存儲(chǔ)介質(zhì),這種存儲(chǔ)級(jí)內(nèi)存其存儲(chǔ)密度比普通內(nèi)存高,但存取速度又比閃存快。更重要的是,傲騰™技術(shù)作為一種持久內(nèi)存的形態(tài)存在時(shí),它獨(dú)有的非易失性,使得它里面存的數(shù)據(jù)在斷電后并不會(huì)消失。
與 DRAM 內(nèi)存相比,持久內(nèi)存具有更經(jīng)濟(jì)的價(jià)格和更大的容量,和固態(tài)盤(pán)相比則擁有更優(yōu)的數(shù)據(jù)響應(yīng)速度和傳輸速度(接近 DRAM 內(nèi)存)。正因于此,傲騰也逐漸成為了很多高性能應(yīng)用里的關(guān)鍵存儲(chǔ)單元,多用來(lái)做內(nèi)存的大補(bǔ)充或者為內(nèi)存密集型應(yīng)用和延時(shí)敏感型應(yīng)用服務(wù)。
3、片上網(wǎng)絡(luò),終于來(lái)了
同樣還在進(jìn)化的,是FPGA的芯片架構(gòu)。之前的文章里介紹過(guò),Agilex™ FPGA對(duì)芯片布局進(jìn)行了大修,把各種I/O接口和存儲(chǔ)單元都移到了芯片的上下兩端,把各種高速收發(fā)器放在了芯片的左右兩端,這樣芯片中間就成了一個(gè)像足球場(chǎng)一樣的特別平整的結(jié)構(gòu)。之前開(kāi)一個(gè)大腳會(huì)踢到各種模塊單元,數(shù)據(jù)跑起來(lái)自然就慢?,F(xiàn)在一馬平川,沒(méi)有擋路的東西了,數(shù)據(jù)跑起來(lái)就快多了。
可以說(shuō),這已經(jīng)是近幾年來(lái)FPGA架構(gòu)上最有創(chuàng)意的嘗試了。但你以為這樣就完了嗎?
Agilex™ M最大的架構(gòu)變化,就是引入了片上網(wǎng)絡(luò)Network-on-Chip。這就像在城市規(guī)劃里,不僅有道路交通,還有軌道交通。在軌道上運(yùn)行的地鐵或城鐵,不僅速度可以更快,還能運(yùn)更多的人。更重要的是,軌道可以建在地上或者地下,不影響在路上跑的汽車(chē)自行車(chē)摩托車(chē)。
Agilex-M的片上網(wǎng)絡(luò)NoC結(jié)構(gòu)示意圖
Agilex™ M的片上網(wǎng)絡(luò)專(zhuān)門(mén)為存儲(chǔ)設(shè)計(jì),也就是說(shuō),這是一趟專(zhuān)列。
有了片上網(wǎng)絡(luò),F(xiàn)PGA和各種內(nèi)存之間的數(shù)據(jù)傳輸就不用經(jīng)過(guò)FPGA的路由資源了。HBM2e通過(guò)UIB接口連接片上網(wǎng)絡(luò)、DDR和傲騰這些片外內(nèi)存則通過(guò)IO96子系統(tǒng)連接片上網(wǎng)絡(luò),并且可以實(shí)現(xiàn)7.52Tbps的總帶寬。
4、其他架構(gòu)優(yōu)化
除了片上網(wǎng)絡(luò),Agilex™ M還有很多其他的架構(gòu)優(yōu)化。I/O方面,它的收發(fā)器帶寬可以達(dá)到116Gbps,可以支持CXL、PCIe Gen5、400G以太網(wǎng)等等這些數(shù)據(jù)中心和網(wǎng)絡(luò)通信的最新協(xié)議和接口。
計(jì)算性能方面,Agilex™ M集成了高達(dá)12300個(gè)可變精度DSP模塊,可以支持高達(dá)18.5TFLOPS的單精度浮點(diǎn)運(yùn)算、37TFLOPS的半精度浮點(diǎn)運(yùn)算、以及88.6TOPS的INT8運(yùn)算。
結(jié)語(yǔ)
作為專(zhuān)門(mén)針對(duì)存儲(chǔ)性能進(jìn)行優(yōu)化的FPGA,英特爾® Agilex™ M已經(jīng)把優(yōu)化做到了極致。這樣的優(yōu)化方式和思路其實(shí)有著很強(qiáng)的普適意義:它并不是由某個(gè)天才創(chuàng)造出來(lái)的突破性成果,而是在各種問(wèn)題的驅(qū)動(dòng)下,一步一步發(fā)展起來(lái)的,然后靠一個(gè)個(gè)擁有「匠人精神」工程師的專(zhuān)注與積累,達(dá)到最后的結(jié)果。
在大多數(shù)情況下,這種方式更加現(xiàn)實(shí),也更加有效。
(注:本文不代表老石任職單位的觀點(diǎn)。)