?
5 月 21 日,美光公司舉行了年度分析師和投資者會議。
盡管很多人都希望獲得更多關于 3D XPoint 技術的信息,美光的管理層依然對此秘而不宣。
我們將在本文討論機器學習,它意味著什么,以及哪種硬件類型最適合機器學習應用。
最后,我們將推測美光正在從事的工作,以及他們可以在 2019 年向 AI 領域推出什么樣的增值解決方案。我們認為美光肯定在準備一顆大炸彈。
近日,美光舉行了年度分析師和投資者會議,會議上公開了許多令人興奮的爆炸性信息,包括一個 100 億美元的股票回購計劃,以及關于美光在 DRAM 和 NAND 市場地位和角色定位的大量討論,隨后,許多文章深度報道了此次會議的諸多信息。在這次投資者大會上,一個顯而易見的事情是,美光并沒有透漏大家所關心的 3D XPoint 技術的任何細節(jié)。美光公司首席執(zhí)行官 Sanjay Mehrotra 在其演講中提到了 3D XPoint,并暗示稱公司計劃在 2019 年開始發(fā)售 3D XPoint 器件。
3D XPoint 是一項可帶來 10 倍性能提升的激動人心的技術。與 DRAM 相比,3D XPoint 芯片的密度更高,耐久能力比 NAND 提高了上千倍,速度也比 NAND 快上千倍。這種技術特性給 3D XPoint 提供了一個重要的價值主張和市場定位,它可以充當層次結構的內存和存儲之間的解決方案。我們正在與客戶在產(chǎn)品開發(fā)方面進行合作,正如我們前面所說,我們將于 2019 年推出 3D XPoint 產(chǎn)品,并在 2019 年下半年開始出貨這些產(chǎn)品。
- 首席執(zhí)行官 Sanjay Mehrotra
公司首席業(yè)務官 SumitSadana 也重申,因為他們現(xiàn)在正在和合作伙伴們一起開發(fā) 3D XPoint 產(chǎn)品,因此還沒有做好討論 3D XPoint 技術細節(jié)的準備。
我今天不會就我們的 3D XPoint 產(chǎn)品提供更多細節(jié),因為我們明年將推出這些產(chǎn)品,而且,出于競爭的原因,我也不希望泄露我們和客戶正在進行的一些工作。
- 首席業(yè)務官 SumitSadana
在本文中,我們將簡要解釋人工智能特別是機器學習如何在現(xiàn)實生活中發(fā)揮相關作用,并基于我們對機器學習的深入了解和美光團隊的公開聲明,推測 3D XPoint 的未來。
AI 和機器學習是什么?
首先,我們來看看人工智能和機器學習的含義。AI 是一個通用的術語,適用于任何一種允許計算機執(zhí)行通常由人類執(zhí)行的任務的技術。這方面的例子林林總總,從下棋到分揀郵件,從識別貓狗圖片到車輛駕駛等。
機器學習(簡稱 ML)是 AI 的一個分支。這種技術通過向計算機顯示一組輸入和預期的輸出,讓計算機從這些輸入輸出的集合中“學習”如何執(zhí)行特定任務來創(chuàng)建 AI。
比如,假設你想訓練一臺計算機識別貓的照片。處理這項任務的一種方法是描述非常詳細的啟發(fā)式規(guī)則,以確定某張照片是否是貓的圖片。
在規(guī)則中,你可能會指定貓有毛茸茸的皮、尖尖的耳朵。但是,不一定每只貓的耳朵都尖尖的,甚至有的貓皮禿毛稀。這就使得基于規(guī)則的 AI 方法很難處理,尤其是遇到特征不明顯的案例時。
相比之下,ML 方法依賴于向計算機顯示成千上萬張不同貓的圖片,并讓計算機自己制定貓的規(guī)則。對于圖像識別而言,當今最常用的模型基于神經(jīng)網(wǎng)絡技術。本文并不打算詳細討論神經(jīng)網(wǎng)絡是如何工作的,不過下面提供了一個這樣的神經(jīng)網(wǎng)絡的簡化圖,它可以幫助你思考一下,為什么 ML 和內存和存儲大有關系。
上面這張圖被簡化用來顯示一張 9x9 像素的圖片。實際案例會涉及到更大的輸入集,使用數(shù)十萬甚至數(shù)百萬個特征。
現(xiàn)在我們至少在概念上對神經(jīng)網(wǎng)絡的外觀有了一些了解,下面讓我們回到那個貓的例子上。
用于訓練的貓的圖片被歸一化為特定大小,然后分解成像素,將這些像素的值輸入 ML 模型中。該模型執(zhí)行前向傳播(模型考慮給予它的輸入是否是貓的照片),并輸出圖片是貓的可能性的概率。
在訓練階段,模型會被告知它的回答是否正確。所以,如果給模型的圖片確實是一只貓,并且模型回答正確,那么這個模型就會得到加強。反之,如果模型回答錯誤,那么通過反向傳播算法對模型進行懲罰(正確答案和模型給出的答案之間的差異),調整一些個體的權重,以期下一次回答時會更好。
硬件要求
計算神經(jīng)網(wǎng)絡中給定預測的成本的數(shù)學公式,Zynath Capital 提供。
前向傳播和后向傳播的數(shù)學計算相當復雜,也超出了本文的范圍,讀者只需要注意一點,即這些計算需要數(shù)以千計的線性代數(shù)運算。 如果你記得高中或大學階段的線性代數(shù)課程,就會了解到,在這種數(shù)學運算中,大數(shù)據(jù)集會被組織成矩陣和向量。這也就解釋了為什么 GPU 在機器學習應用中如此受歡迎。線性代數(shù)可以很容易地并行化,而且 GPU 在并行數(shù)學計算方面非常出色。
這個過程涉及的內存大小有點不直觀。 舉例來說,假設貓的照片是一張 1,000 x 1,000 像素的圖片,按照今天的標準,這是一幅非常小的圖片,但是,這樣一幅圖片也有超過一百萬個單獨的特征(像素),并且每個像素都必須由 CPU 進行處理,以便評估圖片的“貓膩”。
現(xiàn)在,您應該已經(jīng)了解了所述計算模型在一張圖片上需要做多少計算和處理,想象一下,現(xiàn)實世界中需要在成百上千萬張圖片的數(shù)據(jù)集上進行相同操作,數(shù)據(jù)集規(guī)模達到 2TB 或 3TB 以上的情況并不少見,特別是在我們談論諸如遺傳學和天體物理等領域的時候。
為了快速訓練模型,您需要將盡可能多的數(shù)據(jù)集加載到內存(RAM)中,以便功能強大的 GPU 和 CPU 可以執(zhí)行并行化的計算任務?,F(xiàn)在的 CPU 性能如此強大,以至于向 CPU 提供數(shù)據(jù)這個步驟成了瓶頸。一直以來,我們都是通過增加系統(tǒng)的 DRAM 容量,并將正在使用的數(shù)據(jù)集預先加載到 DRAM 中來解決這個問題。
SumitSadana 在他的發(fā)言中談到了這個確切的問題:
“在云公司內部,一個眾所周知的事情是,處理器需要花費大量的時間等待數(shù)據(jù)。隨著這些新興處理器內核數(shù)量在過去幾年內的大幅增加,相對來講這些處理器的附屬內存容量并沒有增加太多,這就意味著每個內核可以使用的內存帶寬容量是實際下降的。”
DRAM 還要一個顯著的缺點 - 易失性。想象一下,你花費了數(shù)天時間,投入了大量的 CPU 和電力資源來為你的新的和革命性的識別貓 ML 模型計算新權重,結果大樓電源斷電,后者由于某些硬件或軟件相關原因需要重啟計算機,顯然,你會丟掉 DRAM 中的一切數(shù)據(jù),你的模型會回歸到最原始的認為桌子也是一只貓的階段(因為桌子也有四條腿)。這正是 3D XPoint 的用武之地。
?
3D XPoint 之美
3D XPoint 連接了 NAND 存儲器(SSD 存儲器)和 DRAM 存儲器(RAM)之間的鴻溝。正如 SumitSadana 所言:“3D XPoint 是一種持久性存儲器,速度不如 DRAM 快,但明顯快于 NAND,它與 DRAM 不同,沒有電也能保存狀態(tài)。”
在原始讀寫速度上,3D XPoint 與常規(guī) NAND 內存更接近,幾乎相同。在廣受歡迎的 YouTube 硬件評論頻道 Linus Tech Tips 執(zhí)行的測試中,使用了 3D XPoint 技術的英特爾 Optane 硬盤的讀寫速度大致為 2GB/s,與三星最新的 NAND SSD 相同。 相比之下,RAMdisk(從 DRAM 模塊創(chuàng)建的虛擬磁盤)的讀取或寫入速度可以超過 8GB/s。然而,3D XPoint 的表現(xiàn)更像 DRAM,尤其是在延遲上。
延遲是衡量給定存儲介質響應請求的速度的一個指標。同樣是 CPU 請求一張貓的照片,NAND 和 3D XPoint 都能夠以大約 2GB/s 的速度向 CPU 提供該圖片,但 3D XPoint 模塊的延遲(在 CPU 時間尺度上)更低,即它會比 NAND 模塊更早開始傳輸信息。3D XPoint 的響應時間接近 DRAM 的響應時間。
我們可以從另外一個角度思考這之間的差異。假如您想要從存儲器中讀取 60 GB 的連續(xù)數(shù)據(jù),那么,NAND 和 3D XPoint 在原始速度方面的性能大致相當。 但是,如果您想從存儲器中隨機執(zhí)行 120,000 個單獨的讀取請求,比如 120,000 張大小為 500 KB 的貓圖片,那么,3D XPoint 模塊完成處理這 120,000 個請求的速度遠快于 NAND 模塊。
3D XPoint 的另一個顯著優(yōu)勢是其耐用性?,F(xiàn)代 NAND 在失效之前可以寫入數(shù)十萬次至數(shù)百萬次,但 3D XPoint 的耐久性與 DRAM 的耐久性相當,它的性能不會因為重復寫入而降低。
3D XPoint 實現(xiàn)
現(xiàn)在我們已經(jīng)知道了機器學習是如何工作的,也了解了 3D XPoint 的性能特征?,F(xiàn)在,讓我們看看 3D XPoint 怎么被非常有效地使用,以加速甚至是革命性地改變機器學習。不過,首先讓我們看看 Sumit Sadana 的一段講話,他暗示了美光在 3D XPoint 上可能正在做的工作:
“在云公司內部,一個眾所周知的事情是,處理器需要花費大量的時間等待數(shù)據(jù)。隨著這些新興處理器內核數(shù)量在過去幾年內的大幅增加,相對來講這些處理器的附屬內存容量并沒有增加太多,這就意味著每個內核可以使用的內存帶寬容量是實際下降的。
這就是為什么使用 3D XPoint 擴展這些進程的可尋址內存空間如此重要的原因,因為它實際上可以給你帶來更大的回報和更高的性能,而不再是只能升級處理器到下一代版本上或者使用更快速的處理器。未來的處理器將允許更多的內存連接到處理器上,這也將成為提高服務器平均能力的另一個驅動因素?!?/em>
上面這段話中的一個關鍵詞匯是“可尋址內存”,它到底意味著什么?你看,CPU 并不能直接尋址計算機中的所有內存。你可以直接尋址 DRAM,但是不能直接尋址硬盤或者 SSD 硬盤。
請注意,上圖中的 CPU 可以直接訪問 DRAM 模塊中存儲的任何數(shù)據(jù),但無法對 SSD 硬盤執(zhí)行相同的操作。為了訪問 SSD 上的數(shù)據(jù),CPU 必須與存儲控制器通信,要求存儲控制器從硬盤驅動器獲取一堆數(shù)據(jù)并將其放入 RAM 中。然后,CPU 從 RAM 獲取所請求的數(shù)據(jù),這樣就實現(xiàn)了對 SSD 硬盤數(shù)據(jù)的訪問。寫入 SSD 的過程與讀取過程相反,CPU 必須首先將一些數(shù)據(jù)寫入 RAM,然后要求存儲控制器從 RAM 中獲取該數(shù)據(jù)并將其寫回到 SSD 中。正如你所看到的那樣,這里面涉及到很大的性能開銷。
相比之下,您可以在圖的右側看到訪問 DRAM 內存和 3D XPoint 內存的方式。在該模型中,CPU 可以直接訪問 DRAM 和 3D XPoint 存儲器中的內存頁面。
Linus Tech Tips 就這個概念做了一個視頻測試,他們使用了英特爾的 Optane 硬盤取代了測試機器上的存儲器。結果顯示,即使是在當前的計算機架構中,沒有使用特殊的操作系統(tǒng)級的配置,通過 M2 接口連接,使用 3D XPoint 內存的 Optane 硬盤也足夠快,可以充分降低 CPU 訪問數(shù)據(jù)的延遲。
為了讓該系統(tǒng)實現(xiàn)最高性能,美光必須和操作系統(tǒng)(Linux 和 Windows)開發(fā)人員共同開發(fā)一種基本全新的內存結構和訪問機制。在一個計算機系統(tǒng)中,你可能有 1 級緩存、2 級緩存,有時甚至需要 3 級緩存,然后是我們都知道的 RAM 或 DRAM 內存。美光需要開發(fā)可以實施另外一層基于 3D XPoint 技術的內存介質的驅動程序,可能比 DRAM 稍慢一些,但是比 DRAM 更耐用,也更便宜。
相對于系統(tǒng)其余部分,這種設計調整可以相對透明地實現(xiàn)。系統(tǒng)會看到全部隨機存取存儲器,但是內核會做出區(qū)分,將經(jīng)常運行的應用在 DRAM 中分配內存頁面,同時為不太經(jīng)常使用但當前仍然在運行的應用分配 3D XPoint 頁面。
這種方式對機器學習模型特別有用,它允許服務器將整個數(shù)據(jù)集加載到可尋址內存中,然后 CPU 在可尋址的內存空間上,在訓練集上開始前向傳播和后向傳播算法的訓練。
更具體地說,如果您參考上文 AI 部分中的神經(jīng)網(wǎng)絡圖,理想的實現(xiàn)會將以 X1,X2 ... 等表示的數(shù)據(jù)集加載到 3D XPoint 存儲器中,同時將模型的主要部分,即我們在圖中隱藏的第 2 層和第 3 層加載到主 DRAM 中。模型的權重通常由 theta,θ表示,它們將被存儲在 DRAM 中,并鏡像到 3D XPoint 進行備份,以應對硬件或軟件崩潰的情形。
CPU 可以直接訪問大量快速和低延遲的內存,將使得 CPU 大部分時間處于滿載狀態(tài)。這意味著更好的投資回報,更短的模型培訓過程,以及機器學習任務的總體重大改進。
結論
美光在最近這次年度會議上展示了公司良好的執(zhí)行力,他們火力全開,而且如果他們能夠以上文所討論的那樣進行 3D XPoint 技術的部署,他們的股票可以獲得更高的市盈率。而且,它也會擺脫商品級芯片供應商“周期上升,周期下降”的老討套路。如果他們能夠提供非易失性的可尋址內存,并與 Linux 和 Windows 等操作系統(tǒng)完美集成,他們就能夠創(chuàng)建一種全新的存儲器類型,并滿足機器學習日益增長的需求。
?