tft每日頭條

 > 圖文

 > 内存分配技術發展

内存分配技術發展

圖文 更新时间:2025-04-03 18:02:12

内存分配技術發展?内存計算 (IMC) 是一種未來計算技術,将數據存儲在 RAM 中,以便完全在計算機内存中運行計算随着大數據時代的興起,需要更快的數據處理能力計算機内存和存儲空間也在成倍增長,以适應大容量的數據采集和複雜的數據分析,推動了AI(人工智能)的發展,進而衍生出一個新興的東西,那就是内存計算,我來為大家講解一下關于内存分配技術發展?跟着小編一起來看一看吧!

内存分配技術發展(技術幹貨内存計算技術)1

内存分配技術發展

介紹

内存計算 (IMC) 是一種未來計算技術,将數據存儲在 RAM 中,以便完全在計算機内存中運行計算。随着大數據時代的興起,需要更快的數據處理能力。計算機内存和存儲空間也在成倍增長,以适應大容量的數據采集和複雜的數據分析,推動了AI(人工智能)的發展,進而衍生出一個新興的東西,那就是内存計算。

目錄

介紹

一、内存牆:處理器/内存性能差距

二、 發展要求

三、什麼是内存計算?

3.1 内存計算定義

3.2 四種實現方式

四、内存計算驅動力及市場前景

4.1 人工智能的内存計算

4.2 内存計算産品展望

4.3 内存計算市場及前景

五、結論


一、内存牆:處理器/内存性能差距

計算機發明時,馮諾依曼體系結構在計算機系統中占據了主導地位。這種計算方式是先将數據存入主存,運行時再從主存中取出指令依次執行。我們都知道,如果内存的連接速度跟不上CPU的性能,那麼計算就會受到限制。這是一面記憶牆。同時,在效率方面,馮諾依曼架構也有明顯的不足。讀取和寫入數據比計算一次消耗更多的能量。

圖 1. 馮諾依曼架構圖

計算機處理器的性能在摩爾定律的基礎上迅速發展,并随着晶體管的發明而直接得到提高。計算機的主存儲器使用DRAM。它是一種基于電容充放電的高密度存儲解決方案。它的性能(速度)取決于兩個方面,即存儲器中電容充放電的讀/寫速度和器件之間的接口帶寬。電容充放電的讀寫速度随着摩爾定律的增加而提高,但速度不如處理器快。此外,DRAM與處理器之間的接口是混合信号電路,其帶寬增加速度主要受制于PCB上走線的信号完整性。這也導緻了DRAM的性能提升遠低于處理器。目前,DRAM的性能已經成為計算機整體性能的巨大瓶頸,即所謂的“内存牆”。它阻礙了計算性能的提高。

圖 2. 摩爾定律效應

二、發展要求

在當前的人工智能技術中,随着數據量和計算量的不斷增加,原有的馮諾依曼架構面臨越來越多的挑戰。依靠擴展CPU,硬件架構不可能有大量的計算。另外較大的存儲容量嚴重依賴過去的架構,也非常不适合AI。當内存容量大到一定程度時,隻能說明某些技術需要創新。為了解決“内存牆”問題,未來的計算機不是基于計算内存,而是基于内存計算,從而降低計算過程中的數據訪問成本。

圖 3. 傳統計算與内存計算

三、什麼是内存計算?3.1 内存計算定義

内存計算(或稱内存計算)是麻省理工學院研究組提出的一種基于RAM數據存儲和索引的技術,其主要目的是加速卷積計算。我們知道卷積計算可以擴展為加權累加計算。從另一個角度來看,它實際上是多個數字的加權平均。因此,電路實現了電荷域的加權平均。權重(1位)存儲在SRAM中,輸入數據(7位數字信号)通過DAC變成模拟信号。根據SRAM中對應的權重,輸出在模拟域乘以1或-1,在模拟域進行平均,最後由ADC讀出為數字信号。具體來說,由于乘法的權重是 1 位(1 或 -1),它可以通過簡單的開關和差分線來控制。如果權重為1,則差分線一側的電容充電到需要的輸出值。否則,讓差分線的另一端充電到這個值。至于平均值,在電荷域中将幾條差分線連接在一起。

當然,内存計算的電路不止一種,計算精度也不限于1-bit。但是,我們可以看到上面的例子,内存計算的核心思想一般是把計算轉化為加權計算。将權重存儲在内存單元中,然後對内存的核心電路(如讀出電路)進行修改。這樣讀取的過程就像是輸入數據和權重在模拟域中相乘的過程,也就是卷積。由于卷積是 AI 和其他計算的核心部分,内存計算可以廣泛用于此類應用。内存計算使用模拟電路進行計算,這是與傳統數字邏輯計算的區别。

在更傳統的架構中,有一些用于張量數學的乘法累加電路 (MAC),尤其是矩陣乘法。這些架構試圖以将權重和激活移動到适當位置的方式來安排 MAC。激活是從前一個神經網絡層計算的。乘法通常涉及激活和權重,兩者都必須移動到相乘的地方。内存計算利用了它。因此,如果将權重存儲在内存中,則内存可以通過激活訪問以獲得乘法和累加。與實際内存的唯一區别是内存計算一次連接所有字線,而不是對輸入進行解碼以僅獲得一條字線。

圖 4. 内存計算圖

3.2 四種實現方式

嘗試是進入模拟領域,将存儲單元作為模拟單元而不是數字單元來處理,以減少消耗。我們已經有了在推理引擎前端使用模拟的方法。那就是内存計算。因此,我們取數字數據,使用 DAC 将其轉換為模拟值,然後用這些模拟内容驅動存儲器以獲得模拟位線輸出,最後使用 ADC 将結果轉換回數字格式。但是内存計算還處于探索階段,具體的實現方式有很多需要研究,目前主要有RRAM、Flash、SRAM、DRAM三種。

  • 基于 RRAM

    RRAM 是最常用的方法,因為通過将歐姆定律應用于一系列電阻器很容易使用,但它仍然存在依賴 RRAM 的問題。編程和電阻之間的關系是非線性的,這需要做更多的工作才能在 RRAM 存儲器中為市場制作可行的計算電路。所以隻是一個想法,具體方案還在研究中。

  • 基于閃存

    NOR閃存具有更傳統的字線/位線結構。它既是電阻性的,也是電容性的。通常,存儲單元是一個被開啟或關閉的晶體管。但是,如果它是部分導電的,它可以用作電阻器。電阻取決于存儲單元(電容器)的浮栅上的電荷量。一直運行時,電池将導通至其最大容量。在這個過程中,它根本不導通,但是,它可以被部分編程。有一個問題是你不能精确控制電子的數量。而且,對任何數字的響應都會随着工藝和溫度等變量的變化而變化。

    兩家公司正在研究這種方法。由于收購了 SST,Microchip 擁有自己的 memBrain 陣列,而 Mythic 是一家初創公司,緻力于使用閃存計算的推理引擎。兩家公司都表示,他們正在使用廣泛的校準技術來應對這種變化。

    另一個問題是,閃存電池會随着時間的推移失去電子。電子會四處流動,這就引出了一個有趣的話題:在這種類型的内存陣列上,數據的保留和持久性會是怎樣的。

    從應用角度看,要看是用在雲計算還是邊緣推理引擎。在邊緣,它可以在設備的整個生命周期中執行某些固定的推理功能。因此,如果有足夠多的數組,那麼您将首次加載權重并且不再需要對其進行編程(除非您進行更新),因為閃存是非易失性的。盡管您仍然需要移動激活,但無需移動權重,權重将永久存儲在數組中。這表明數據耐久性(在累積損壞将電子洩漏加速到不可接受的水平之前可以對設備進行編程的次數)并不重要,它隻需要編程一次。

    相比之下,在雲應用程序中,設備很可能作為通用計算資源共享,因此這需要為每個新應用程序重新編程。這意味着電池壽命在雲中變得更加重要。Mythic 聲稱有 10K 的寫入周期,并觀察到即使每天重新編程,也能持續 10 年以上。

    如果為它設置一個模拟值并在單元格中使用一個模拟值,那麼理論上每個電子都很重要。但是,如果有足夠的電子遷移,則需要刷新存儲單元,或者以某種方式補償電子變化。因為今天相同的模拟輸入将産生與一年前不同的結果。校準電路還可以處理一些老化問題。然而,對于數據保留,Mythic 表示他們會定期更新存儲在閃存中的重量值。這将使持久性成為主要的磨損機制,而不是數據保留。Microchip 表示其數據保留時間待定,但它可能會每季度或每年對設備進行重新編程以恢複設備。

    所以他們需要大量高質量的ADC和DAC,才能将信噪比(SNR)保持在準确推理的範圍内,這是設計工作的重點。Mythic 聲稱他們提供了一種新穎的 ADC,以便 Microchip 可以共享它以減少所需的數量。盡管 ADC 确實會消耗能量,但它也大大降低了整個系統的消耗。

  • 基于SRAM

    這個想法來自普林斯頓大學 Hot Chips 的一次講座。根據定義,SRAM 是一個雙穩态單元。所以不能處于中間狀态,這個應該怎麼處理呢?而 DAC 和 ADC 在面積和功耗方面比陣列需要更正。

    這個問題的重點歸結為如何模拟的問題。他們解釋說,這種方法使用不止一位線進行計算。由于單位仍然是數字值,因此需要幾條位線來執行計算。位線可以分裂,不同的組進行不同的乘法。下圖說明了這一點。

    圖 5. 位線

    一次有 8 個輸入,因此對輸入向量進行切片,并進行幾次連續的乘法運算,得到最終結果。位線電荷沉積在電容器上。準備好讀取時,會讀出電荷并将其發送到 ADC 以轉換回數字域。它們的基本單元結構如下:

    圖 6. 位單元

    這些電容器可能會影響芯片尺寸問題,但他們表示可以使用電池上方的金屬。當然,一個單元現在比标準的 6T SRAM 單元大 80%(即使沒有電容器),但他們說他們的整體電路仍然比基于标準數字實現所需的電路小得多。此外,由于它們的基本陣列操作仍然是數字形式,它們對噪聲和變化不太敏感,這意味着它們的 ADC 可以更簡單,功耗更低。

    圖 7. 芯片尺寸

  • 基于DRAM

    這個想法是指不使用大量的功率來獲取 DRAM 内容,并以某種方式将計算納入 CPU 或其他計算結構中,并直接在 DRAM die 上運行,這就是 UPMEM 所做的。一個簡單的處理器是建立在 DRAM 芯片上的,該架構也不會與 Xeon 芯片競争,他們稱之為“内存處理”或 PIM。

    圖 8. PIM 芯片

    他們不是将數據帶入計算,而是将計算帶入數據。運行時由 DRAM 芯片中的 CPU 執行。也就是說,不需要将數據移動到DRAM芯片之外的任何位置,隻需将計算結果發送回主機系統即可。此外,由于 ML 計算通常涉及大量縮減,因此計算所需的數據更少。盡管這确實需要對 DRAM 進行一些小的改動,但它們并沒有改變制造工藝。在這種情況下,一個标準的 DRAM 模塊将為分布式計算提供多種機會。同時,使用該函數編寫程序也變得複雜。

    他們說,使用 PIM 卸載的服務器将消耗兩倍于連接到沒有 PIM 的 DRAM 模塊的标準服務器的功率。然而,憑借 20 倍的吞吐量,它仍然為他們提供了 10 倍的能效優勢。此外,這種方法可以幫助防禦側信道安全攻擊。因此,最初包含在一個或多個 CPU 中的一組計算線程流向 DRAM。因此,有必要檢查所有 DRAM 并以某種方式找出線程在哪裡,但這将是一項艱巨的任務。

    四、内存計算驅動力及市場前景4.1 人工智能的内存計算

    人們早就認識到“内存牆”的問題,但為什麼近兩年才提出内存計算?因此,我們必須分析其上漲背後的推動力。

    第一個動機是基于神經網絡的人工智能的興起,特别是希望人工智能可以在移動和嵌入式設備中普及。因此,具有高能效比的内存計算備受關注。此外,神經網絡對計算精度的誤差具有很高的容忍度。因此,内存計算的模拟計算中引入的錯誤通常是可以接受的。也就是說内存計算和人工智能是很好的合作夥伴。

    第二個動機是新的記憶。對于内存計算,内存特性往往決定了内存計算的效率。因此,新的内存改進往往會推動内存計算的發展。例如,最近流行的 ReRAM 使用電阻調制來存儲數據,因此每個位的讀出使用電流信号而不是傳統的電荷信号。如此一來,電流的累加是很自然的操作(直接将幾條電流組合起來就可以實現電流的總和,甚至不需要額外的電路)。也就是說,ReRAM 非常适合内存計算。從内存提升的角度來看,新的内存也願意追趕AT潮流。所以,

    4.2 内存計算産品展望

    用于内存計算的芯片産品預計有兩種形式。第一種形式是作為具有計算功能的内存IP出售的。這樣的内存IP可以是傳統的SRAM,也可以是eFlash、ReRAM、MRAM、PCM等新型内存。

    第二種形式是直接基于内存計算構建AI加速芯片。例如,Mythic 計劃制作基于閃存的 PCIe 加速卡,即通過 PCIe 接口與主 CPU 訪問數據。重量數據存儲在 Mythic 内存芯片上,這樣當數據發送到 Mythic IPU 時,可以直接讀出計算結果。這樣就省去了讀取權重數據的動作。

    圖 9. Mythic 是 Pcie 加速器

    4.3 内存計算市場及前景

    内存計算将對AI芯片市場産生怎樣的影響?首先,我們看到内存計算使用的是模拟計算,所以它的精度會受到低信噪比的影響。通常精度上限在 8 位左右,隻能進行定點計算,不能進行浮點計算。所以内存計算不适合對計算精度要求高的AI訓練市場。也就是說,内存計算的主戰場是AI推理市場。比如更适合嵌入式人工智能,對能效要求不高,精度要求不高。事實上,内存計算其實最适合需要大内存的場合。例如,在物聯網和其他場景中固有地需要閃存,所以如果能把内存計算加到flash上​就很合适了。但是,在大型存儲内存中引入内存計算可能并不合适。基于此分析,我們認為内存計算未來可能成為嵌入式人工智能(如智能物聯網)的重要組成部分。

    五、結論

    随着人工智能和新内存的興起,内存計算也成為了新的熱點。基于内存的獨特特性,結合内存中的模拟計算,大大減少了AI中的内存讀寫操作。雖然内存中的計算精度受限于模拟計算,但它也适用于最追求能效的嵌入式AI應用,可以接受一定的精度損失。

    關于内存計算技術的常見問題

    1. 為什麼我們需要内存計算?内存計算提供了超快的性能(快了數千倍)和永無止境的數據量規模,并簡化了對越來越多的數據源的訪問。

    2. 記憶中是什麼意思?與将數據存儲在磁盤或 SSD 上的數據庫相比,内存數據庫是一種專門構建的數據庫,主要依賴内存進行數據存儲。... 由于所有數據都在主内存中專門存儲和管理,因此存在因進程或服務器故障而丢失的風險。

    3. 内存計算是如何工作的?内存計算意味着使用一種中間件軟件,它允許将數據存儲在 RAM 中,跨計算機集群,并并行處理。考慮通常存儲在集中式數據庫中的操作數據集,您現在可以将其存儲在跨多台計算機的“連接”RAM 中。

    4. SAP HANA 中的内存計算是什麼?内存數據庫意味着來自源系統的所有數據都存儲在 RAM 内存中。在傳統的數據庫系統中,所有數據都存儲在硬盤中。它可以更快地訪問多核 CPU 的數據,以進行信息處理和分析。

    5. 數據是如何存儲在内存中的?通常,内存被描述為一種存儲設施,可以通過使用地址來存儲和檢索數據。這是準确但不完整的。計算機内存是一種機制,如果您為其提供地址,它會為您提供您之前使用該地址存儲的數據。

    6.什麼是内存數據處理?内存處理是對完全在計算機内存(例如,RAM)中的數據采取行動的做法。... 由于存儲表現為一個大的、單一的 RAM 分配,因此可以一次處理大型數據集,而不是處理僅适合單台計算機 RAM 的數據集。

    7.什麼是内存數據庫處理,它有什麼優勢?使用内存數據庫的系統與傳統數據庫系統相比的主要優勢是:它的性能速度。... 源數據以壓縮格式加載到系統内存中。因此,内存處理減少了訪問數據的磁盤尋道時間,并簡化了處理查詢所涉及的工作。

    8.什麼是大數據計算?大數據計算是一種新興的多維信息挖掘數據科學範式,用于在大規模基礎設施上進行科學發現和業務分析。... 大數據的特點是 5V,如數量、速度、多樣性、準确性和價值。

    更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

    查看全部
  • 相关圖文资讯推荐

    热门圖文资讯推荐

    网友关注

    Copyright 2023-2025 - www.tftnews.com All Rights Reserved