UPMEM,一家成立于2015年的法國半導(dǎo)體設(shè)計公司,應(yīng)邀于2019年8月19日在HotChips會議上展示其顛覆性的存內(nèi)計算(PIM : Processing in Memory)解決方案。該解決方案能夠?qū)⒋髷?shù)據(jù)和AI應(yīng)用程序運行速度提高20倍,將能耗降低10倍。
作為半導(dǎo)體行業(yè)關(guān)于高性能微處理器的頂級會議之一,HotChips吸引了數(shù)千名微處理器架構(gòu)師、技術(shù)專家和IT專業(yè)人士。而作為一家成立僅僅4年的公司,UPMEM的產(chǎn)品究竟有什么樣的魅力使它能夠登上高手云集的HotChips的舞臺。
中科院計算所智能計算機研究中心帶你解讀
其中的奧秘......
馮·諾依曼架構(gòu)之殤
馮·諾伊曼架構(gòu)是計算機的經(jīng)典架構(gòu),同時也是目前計算機以及處理器芯片的主流架構(gòu)。在馮·諾伊曼架構(gòu)中,計算單元與內(nèi)存是兩個完全分離的組成部分:計算單元根據(jù)指令從內(nèi)存中讀取數(shù)據(jù),在計算單元中完成計算或處理,并存回內(nèi)存。
然而,馮·諾伊曼架構(gòu)在構(gòu)建之初只是一個理論模型,在建立該模型時做了一個當時看來合理的假設(shè),即處理器和內(nèi)存的速度很接近。但是計算機處理器的性能隨著摩爾定律高速發(fā)展,其處理速度隨著晶體管特征尺寸的縮小而直接提升,因此在過去數(shù)十年中其性能提升可謂是天翻地覆,現(xiàn)在一顆手機中處理器的性能已經(jīng)比30年前超級計算機中的處理器還要強。另一方面,計算機的主要內(nèi)存使用的是DRAM方案,DRAM讀寫數(shù)據(jù)的速度隨著摩爾定律有一定提升,但是提升速度并不如處理器,另一方面DRAM與處理器之間的接口屬于混合信號電路,其帶寬提升速度主要是受到PCB板上走線的信號完整性所限制,因此從晶體管尺寸縮小所獲得的增益并不大。這也造成:在內(nèi)存容量指數(shù)級提升以后,CPU 和內(nèi)存之間的數(shù)據(jù)傳輸帶寬成為了瓶頸。目前DRAM的性能已經(jīng)成為了計算機整體性能提升的一個重要瓶頸,即所謂阻礙性能提升的“內(nèi)存墻”。
存內(nèi)計算:通往大數(shù)據(jù)之門
解決“內(nèi)存墻”問題的一種方案是存內(nèi)計算(PIM),該種思想在近年來的學(xué)術(shù)屆和業(yè)界都受到了極大的關(guān)注。PIM最早發(fā)源于計算機微體系結(jié)構(gòu)的研究,它通過在內(nèi)存中集成部分計算資源,實現(xiàn)快速數(shù)據(jù)處理,主要用于解決訪存帶寬、訪存能耗等體系結(jié)構(gòu)設(shè)計的瓶頸問題。從計算和存儲誰接近誰的角度來看,PIM剛好和Cache相反。這一技術(shù)在上世紀90年代隨著David Patterson教授研究的Intelligent RAM項目有了一個高潮,但由于當時工藝不成熟、缺乏殺手級應(yīng)用等問題,后來陷入了沉寂。最近由于三維堆疊、HBM、RRAM等新型工藝器件的出現(xiàn)以及神經(jīng)網(wǎng)絡(luò)加速、圖計算等關(guān)鍵應(yīng)用的推動,PIM重新成了研究熱點。2018年的國際固態(tài)半導(dǎo)體會議(ISSCC,全球最頂尖的芯片設(shè)計會議,發(fā)表最領(lǐng)先的芯片設(shè)計成果,稱為“芯片界的奧林匹克”)有專門一個議程,其中的論文全部討論存內(nèi)計算;到了2019年,也有5篇關(guān)于存內(nèi)計算的論文,不過分散在不同的議程中。存內(nèi)計算的主要改進就是把計算嵌入到內(nèi)存里面去,這樣內(nèi)存就不僅僅是一個存儲器,還是一個計算器。這樣一來,在存儲或讀取數(shù)據(jù)的時候就同時完成了運算,因此大大減少了計算過程中數(shù)據(jù)搬運所帶來的消耗。
UPMEM所采用的是將計算單元嵌入DRAM存儲陣列中的方式來實現(xiàn)PIM。該方式具有較強通用性,在該種實現(xiàn)方式下,僅需要在DRAM中增加適當?shù)挠嬎氵壿嫞瑫r與DRAM接口協(xié)議相兼容,便可適配現(xiàn)有的內(nèi)存系統(tǒng)。
UPMEM:內(nèi)存市場的攪局者?
UPMEM此次對外發(fā)布的產(chǎn)品,最大的特點應(yīng)該就是其基于DDR4 R-DIMM 模型,取代了標準的DIMM。整個DDR4 R-DIMM條有著8GB容量,包含了16個 4Gb DRAM顆粒。每個顆粒中嵌入了8個存內(nèi)處理器核(DPU)。由于DPU能直接訪問內(nèi)存單元,每個DRAM-DPU的帶寬能夠達到1GB/s。據(jù)悉,最終用于服務(wù)器上的產(chǎn)品容量將達到128GB,總共2048個DPU,最終的整體帶寬將達到2TB/s。
上圖展示的是一個DRAM顆粒中的結(jié)構(gòu)示意圖,UPMEM針對其進行了專門的架構(gòu)設(shè)計。每個DRAM顆粒中有8個bank, 均連接到各自的DPU上。DRAM加上DPU則使得原來只具有存儲功能的DRAM CHIP變成了具備存儲和計算功能的PIM CHIP。
根據(jù)UPMEM已發(fā)表的論文和專利可以發(fā)現(xiàn),其PIM方案早在4年前就已經(jīng)確立。而該公司也整整花了4年的時間才實現(xiàn)了其產(chǎn)品的落地。由于晶體管結(jié)構(gòu)和工作模式的差異,邏輯工藝和存儲器工藝是兩種不同的芯片工藝,要想在存儲器內(nèi)部引入邏輯部件,這對于UPMEM來說是一個不小的挑戰(zhàn)。在此次會議的演講上,UPMEM用“highly constrained”來形容工藝條件對其PIM設(shè)計方案的阻礙。
其次,從演講的內(nèi)容來看,大致介紹了如下一些
關(guān)鍵技術(shù)難題和部分解決方案。
No.1
在DRAM工藝上建立數(shù)字邏輯的流程,比如Logic cell library,SRAM IP和Logic Design & Validation flow,這些是處理器設(shè)計和實現(xiàn)的基礎(chǔ)。同時,為了兼容DRAM工藝,DPU只能使用比較“慢”的晶體管設(shè)計,但是卻需要達到“較快”的處理器速度。為達到這一設(shè)計需求,DPU采用了14級Interleaved pipeline來實現(xiàn)500MHz的頻率,該頻率相對于CPU的頻率差距較大,但與DRAM的頻率差不多。同時提供了24個硬件線程,保證了流水線的效率。
No.2
針對DRAM 工藝,在DPU中采用了優(yōu)化后的32位指令集,具有多線程,標量,循序等特點,值得注意的是UPMEM并沒有使用ARM或RISC-V等指令集。這種設(shè)計方案存在一個問題,即DPU所使用的指令集如何與CPU所采用的指令集(X86/ARM/POWER 9)交互,這一部分內(nèi)容UPMEM并沒有在PPT中提到。
No.3
從存內(nèi)處理器架構(gòu)來看,UPMEM在DPU中放棄了Cache的使用,而是采用64KB的SRAM buffer替代Data Cache,采用24KB的 SRAM buffer替代Instruction Cache。在通常的體系結(jié)構(gòu)中,Cache的存在主要是出于兩方面的考慮: CPU與DRAM的頻率差異以及DRAM的訪存延遲。對于DPU而言,盡管其頻率與DRAM相近,但DRAM的訪問遠做不到1個cycle,仍然需要SRAM來緩存數(shù)據(jù)。UPMEM的解決方案是采用SRAM buffer結(jié)構(gòu)來做緩存,其作用與Cache類似,兩者的區(qū)別在于前者是硬件管理,后者是軟件管理。同時采用SRAM buffer替代Cache也有出于提高多線程效率的考慮。
No.4
DPU龐大的數(shù)量決定了: 不必讓兩個進程共享一個DPU,也就不需要在存內(nèi)運行操作系統(tǒng)(OS),所以沒有必要考慮兼容性問題,但需要實現(xiàn)對LLVM/CLANG的支持。同時UPMEM還聲稱由于DPU之間不存在共享問題,其產(chǎn)品安全性得到了大大提升。
No.5
當在內(nèi)存中增加了這么多的計算單元后,如何進行任務(wù)劃分很顯然將會成為一個重要問題,哪些任務(wù)交給CPU處理,哪些任務(wù)交給DPU處理?在UPMEM的講演中也分析了這方面的內(nèi)容,將對算力要求高的部分應(yīng)用搬到DPU中進行處理,絕大部分的常規(guī)應(yīng)用仍然交給CPU執(zhí)行。另一方面CPU也要負責(zé)從DPU中收集計算結(jié)果。
對于DRAM的刷新控制,UPMEM此次并沒有在此次HotChips上提到,但很顯然這是一個很關(guān)鍵的問題。我們知道DRAM每隔一段時間均需要刷新一次,在這一設(shè)定下很可能出現(xiàn)的情況是DRAM需要刷新時,存內(nèi)處理單元正在使用存儲陣列區(qū)中的數(shù)據(jù)。從其已經(jīng)公布的專利來看,為保證刷新的正常進行,需要在DRAM的每個bank中增加一個刷新計數(shù)功能部件,該部件能將DPU使用存儲陣列時所接收的從CPU傳來的刷新命令記錄下來,待DPU處理完畢數(shù)據(jù),再由外部刷新控制電路繼續(xù)進行刷新。
盡管面對如此多的難題,這家雄心勃勃的初創(chuàng)公司仍然有信心在2020年實現(xiàn)DRAM-PIM產(chǎn)品的量產(chǎn)。從UPMEM提供的技術(shù)白皮書中可以看到,該公司的技術(shù)戰(zhàn)略路線基本是分三步走,分別DRAM級,SSD級和物聯(lián)網(wǎng)可穿戴設(shè)備場景下的存內(nèi)計算。在產(chǎn)品戰(zhàn)略布局上,目前主要是服務(wù)器市場,今后應(yīng)用的重心也會涉及到邊緣計算和智能汽車電子領(lǐng)域。
從短期來看,UPMEM所采用的將計算單元嵌入到DRAM中的存內(nèi)計算實現(xiàn)方式具有較高的通用性,更容易被市場接納。
但如何從行業(yè)的攪局者成為一個內(nèi)存市場細分領(lǐng)域的引領(lǐng)者,UPMEM可能還有很長的一段路要走。
Our Achievement
中科院計算所智能計算機研究中心一直致力于性能及能效領(lǐng)先的智能計算系統(tǒng)研究,是國內(nèi)最早開展新型存內(nèi)計算技術(shù)研究的機構(gòu)之一。目前我中心已經(jīng)在存內(nèi)計算的一致性方法,預(yù)取策略,計算劃分方法,模擬器搭建等方面取得了卓有成效的成績。其中存內(nèi)計算模擬平臺PIMsim是首個把應(yīng)用、OS、CPU和PIM放在一起的全系統(tǒng)、實際執(zhí)行模擬器,已經(jīng)開源發(fā)布在:https://github.com/vineodd/PIMSim
同時值得注意的是我中心發(fā)表在IEEE COMPUTER ARCHITECTURE LETTER上,關(guān)于該模擬器介紹的論文:PIMSim: A Flexible and Detailed Processing-in-Memory Simulator,目前排在該期刊popular articles中的第一位。