【摘要】 ? ?數(shù)據(jù)傳輸在異構系統(tǒng)構架中是一個瓶頸問題,類似在計算機系統(tǒng)中的內存墻問題,此類問題的產(chǎn)生是因為,多年來計算機內部存儲技術(主要是指內存)一直跟不上處理器技術在延遲和功耗方面的進步,此類問題也被稱為“內存墻”(Memorywall)問題,體現(xiàn)近內存計算思想的計算機系統(tǒng)的第一次出現(xiàn)可以追溯到20世紀90年代初,用于數(shù)據(jù)處理的原型機則由 Kozyrakis 等人提出,當時被稱之為矢量 IRAM(VIRAM、)。研究人員開發(fā)了一個開發(fā)板上嵌入式DRAM(eDRAM)的矢量處理器,用來處理多媒體應用中的數(shù)據(jù)并行性計算的部分。雖然取得了一定的成果,但這些近內存系統(tǒng)并沒有真正滲透到市場,成果仍然有限。其中一個主要原因是技術限制,主要是因為由于計算處理技術和內存技術流程的差異,以及它們能夠在矢量處理器集成的芯片上內存大小的限制。
【關鍵詞】 ? ?數(shù)據(jù)傳輸 ? ?程序 ? ?計算機加速器
經(jīng)過近20年的發(fā)展,近內存計算系統(tǒng)的研究正在多個技術及社會需求背景下重新引起學界、廠商的關注。這種關注主要歸因于以下三個原因。
1.新的內存封裝技術的進步,包含3D和2.5D等內存堆疊技術的進步,將一系列邏輯和內存混合在同一包中,帶來了了全新的計算機存儲介質。
自2011年以來,NVM技術一直非?;钴S,其中NVMe協(xié)議從目前在單獨的協(xié)議規(guī)范中,出現(xiàn)了三個角度的演變。除了原有的基本NVMe規(guī)范之外,NVMe管理接口規(guī)范(NVMe-MI),該規(guī)范介紹了如何管理通信和設備(設備發(fā)現(xiàn)、監(jiān)視等)和NVMe通過結構規(guī)范(NVMe-oF),該規(guī)范實現(xiàn)了通過網(wǎng)絡驅動與非易失性存儲通信。隨著時間的推移,隨著更多不同行業(yè)的用戶開始采用NVMe,新用戶將描述他們對新功能的需求,并引入規(guī)范的新思路。NVMe協(xié)議的采用仍在增長,并且正在產(chǎn)生創(chuàng)新。硬件和軟件公司正在通過引入新的封裝外形、創(chuàng)造的新產(chǎn)品和電器結構等來尋找新的方法來進入傳統(tǒng)的內存構架及近內存計算??梢灶A見NVMe生態(tài)系統(tǒng)的重點是為用戶提供擴展到數(shù)據(jù)中心或超大規(guī)?;A結構中去。
2.將計算遷移到臨近到數(shù)據(jù)存儲的位置,可以繞過內存包引腳計數(shù)限制,從而避免數(shù)據(jù)移動導致的性能和能量瓶頸。
傳統(tǒng)的馮諾依曼體系結構數(shù)據(jù)流向存在的問題是過分的以計算為中心導致的。性能、能耗,等問題一直困擾著這種二元結構,因此新的方法將計算過程遷移到臨近到數(shù)據(jù)存儲的位置,也就是說在盡量靠近數(shù)據(jù)的地方來處理數(shù)據(jù)或者盡量減少數(shù)據(jù)的訪問來完成計算,從而繞過內存包引腳計數(shù)限制,將處理推送到數(shù)據(jù)中間去或者推送到存儲中間去,從而提升性能降低能耗。
3.隨著云計算、大數(shù)據(jù)、物聯(lián)網(wǎng)、移動互聯(lián)及區(qū)塊鏈在經(jīng)濟活動、社會活動等領域中的應用,現(xiàn)代數(shù)據(jù)密集型應用的出現(xiàn),需要更新的計算架構。
研究提出了各種近內存計算體系的設計,并證明了這些設計在提高許多應用場景中的性能提升。在這些研究中,NMC已表現(xiàn)出諸如存內計算(PIM,Processing-in-Memory,也被稱為in-memory computing)、近數(shù)據(jù)處理(NDP,Near data processing)、近內存處理(NMP,Near memory processing)等概念。上述這些概念和計算思路都是為了平衡處理器和存儲之間實際上發(fā)展的是不平衡的現(xiàn)狀,其核心原則是將計算機處理數(shù)據(jù)的過程更接近內存。這些技術研究進一步打破了內存的物理約束及日益限制了通用處理器性能改進的潛力。這一趨勢在登納德縮放和摩爾定律的當前放緩中已經(jīng)很明顯。
使用特定的應用計算加速器來發(fā)展越來越具有廣泛的前景,以及更好的每瓦性能。與為應用程序加速而建立的GPU相比,F(xiàn)PGA平臺可用的內存帶寬發(fā)展迅猛,例如,Al在他們的調查論文中描述了未來利用FPGA加速內存數(shù)據(jù)庫的方法。
典型的加速器近內存計算體系結構中,CPU、FPGA或ASIC用作與內存本身分開的處理單元。主流采用近內存計算的一個特別挑戰(zhàn)是從加速器對主機進程的虛擬內存進行高效的緩存一致訪問。新興的互連標準,如CAPI/OpenCAPI 和CXL通過提供緩存一致性,促進CPU和計算內存之間的數(shù)據(jù)交換。
1.以傳統(tǒng)的GPU(圖形處理單元)作為加速單元的近內存計算研究方面,以Cho等人提出了一種集成 GPU 的新 SSD 架構XSD,XSD基于 MapReduce 框架提供的 API 集,允許用戶在應用程序中調動并行運算,并利用嵌入式 GPU 提供的并行運算算力。同時,為了更好的性能和利用率,該框架也優(yōu)化運算策略,以克服 SSD 架構中的缺點的影響。
Hsieh等人提出了通過透明的CPU運算卸載和對應GPU運算映射的一種近內存構架,首先它根據(jù)自動標識代碼卸載CPU運算到邏輯層的GPU。其次,通過軟硬協(xié)作機制,實現(xiàn)預測卸載代碼將訪問的內存保留在內存堆棧中,以最大限度地減少運算帶寬消耗,從而實現(xiàn)近內存計算。
2.通過CPU優(yōu)化/運算構架等實現(xiàn)對數(shù)據(jù)流控制也是近內存計算的方向之一,在此方面學術上研究非?;钴S。其中以Kang等人提出了通過隔離不同的近內存計算設備內的數(shù)據(jù)流來保證低能耗、高并行性、低主機內存占用率和更好的近內存計算性能。Seshadri等人]提出的允許程序員增強和擴展 SSD 的Willow構架,在其上運行的 SSD 應用程序為應用程序提供對 SSD 內容的低延遲、高帶寬訪問,同時減少 IO 處理在主機處理器上設置的負載。
3.在特定于應用程序的加速器(Application specific accelerator 簡稱ACC)來實現(xiàn)近內存計算方面,Ahn等人使用支持計算的內存命令實現(xiàn)簡單的內存計算,并使用專用指令來調用內存中計算(圖3)。這些操作與現(xiàn)有編程模型、緩存一致性協(xié)議和虛擬內存機制進行互操作,無需修改。同時,該研究還引入了一個簡單的硬件結構,用于監(jiān)視啟用 PIM 的指令在運行時訪問的數(shù)據(jù)位置,以便當指令判斷當可以從在較大緩存中受益時,在主機處理器(而不是在內存中)自適應地執(zhí)行指令。Gu等人提出了Biscuit,一個新的近數(shù)據(jù)處理框架,專為現(xiàn)代固態(tài)驅動器。t 允許程序員編寫數(shù)據(jù)密集型應用程序,以分布式但無縫的方式在主機系統(tǒng)和存儲系統(tǒng)上運行。為了提供高級編程模型,Biscuit運算構架,該構架以數(shù)據(jù)流的概念為構建,數(shù)據(jù)處理任務通過類型端口和數(shù)據(jù)排序端口進行通信。Biscuit實際部署在后端,因此不區(qū)分在主機系統(tǒng)和存儲系統(tǒng)上運行的任務,因此具有通用性等理想特征。
4.以FPGA為加速單元的近內存計算研究,Jun等人提出了基于部署在FPGA上的持久性內存實現(xiàn)近內存計算的模型,Istv ?an等人提出了Caribou,一種基于TCP/IP的近內存計算架構。
參考文獻
[1] J. Ahn, S. Hong, S. Yoo, O. Mutlu, and K. Choi, “A Scalable Processing-in-Memory Accelerator for Parallel Graph Processing,” in 2015 ACM/IEEE 42nd Annual International Symposium on Computer Architecture (ISCA), June 2015, pp. 105–117.
[2] P. C. Santos, G. F. Oliveira, D. G. Tom?e, M. A. Alves, E. C. Almeida, and L. Carro, “Operand Size Reconfiguration for Big Data Processing in Memory,” in Proceedings of the Conference on Design, Automation & Test in Europe. European Design and Automation Association, 2017, pp. 710–715.
趙曉菲(1987.10-),女,漢族,河北衡水人,研究生,高職教師,研究方向:內存計算