前言
在過去的幾年里,我們目睹了數(shù)據(jù)的一系列巨大變化,包括數(shù)據(jù)如何被生成、處理以及進(jìn)一步利用以獲取額外的價(jià)值和智能,而這些變化都受到以深度學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)應(yīng)用為基礎(chǔ)的新興計(jì)算模式所影響。這種深刻的變化始于數(shù)據(jù)中心,其利用深度學(xué)習(xí)技術(shù)來提供對(duì)海量數(shù)據(jù)的洞察,主要用于分類或識(shí)別圖像、支持自然語言處理或語音處理,或者理解、生成或成功學(xué)習(xí)如何玩復(fù)雜的策略游戲。這種變化催生了一批專門針對(duì)這些類別的問題而設(shè)計(jì)的高功效計(jì)算設(shè)備(基于GP-GPU和FPGA),后來還產(chǎn)生了可完全定制的ASIC,進(jìn)一步加速并提高了基于深度學(xué)習(xí)的系統(tǒng)的計(jì)算能力。
大數(shù)據(jù)和快速數(shù)據(jù)
大數(shù)據(jù)應(yīng)用采用專門的GP-GPU、FPGA和ASIC處理器透過深度學(xué)習(xí)技術(shù)來分析大型數(shù)據(jù)集,并揭示趨勢(shì)、模式和關(guān)聯(lián)性,從而實(shí)現(xiàn)圖像識(shí)別、語音識(shí)別等功能。因此,大數(shù)據(jù)是基于過去的信息或常駐在云端的靜止數(shù)據(jù)。大數(shù)據(jù)分析的一個(gè)常用的功能是執(zhí)行特定任務(wù)“訓(xùn)練過的”神經(jīng)網(wǎng)絡(luò),例如識(shí)別和標(biāo)記圖像或視頻序列中的所有面部,語音識(shí)別也展示了神經(jīng)網(wǎng)絡(luò)的強(qiáng)大功能。
這種任務(wù)最好由專門的引擎(或推理引擎)來執(zhí)行,這種引擎直接駐留在邊緣設(shè)備上并由快速數(shù)據(jù)應(yīng)用程序(圖1)來引導(dǎo)。通過在邊緣設(shè)備上處理本地所捕獲的數(shù)據(jù),快速數(shù)據(jù)能夠利用來自大數(shù)據(jù)的算法提供實(shí)時(shí)決策和結(jié)果。大數(shù)據(jù)提供了從“過去發(fā)生了什么”到“將來可能會(huì)發(fā)生什么”所演繹出的洞察(預(yù)測(cè)分析),而快速數(shù)據(jù)則提供了能夠改善業(yè)務(wù)決策、運(yùn)營并減少低效情形的實(shí)時(shí)行動(dòng),所以這一定會(huì)影響最終結(jié)果。這些方法可以適用于各種邊緣和存儲(chǔ)設(shè)備,例如照相機(jī)、智能手機(jī)和固態(tài)硬盤。
在數(shù)據(jù)上進(jìn)行計(jì)算
新的工作負(fù)載基于兩種場(chǎng)景:(1)針對(duì)特定工作負(fù)載(例如圖像或語音識(shí)別)訓(xùn)練大型神經(jīng)網(wǎng)絡(luò);以及(2)在邊緣設(shè)備上應(yīng)用經(jīng)過訓(xùn)練的(或“適合的”)神經(jīng)網(wǎng)絡(luò)。兩種工作負(fù)載都需要大規(guī)模并行的數(shù)據(jù)處理,其中包括大矩陣的乘法和卷積。這些計(jì)算功能的最佳實(shí)施方式需要在大矢量或數(shù)據(jù)陣列上運(yùn)行的矢量指令。RISC-V就是一種非常適合于此類型應(yīng)用的架構(gòu)和生態(tài)系統(tǒng),因?yàn)樗峁┝艘惶子砷_源軟件支持的標(biāo)準(zhǔn)化過程,使得開發(fā)人員能夠完全自由地采用、修改甚至添加專有矢量指令。圖1中概述了一些顯而易見的RISC-V計(jì)算架構(gòu)機(jī)會(huì)。
移動(dòng)數(shù)據(jù)
快速數(shù)據(jù)和邊緣計(jì)算的出現(xiàn)產(chǎn)生了一個(gè)實(shí)際的后果,即:與云端之間來回移動(dòng)所有數(shù)據(jù)進(jìn)行計(jì)算分析并不是一件有效率的事。首先,在移動(dòng)網(wǎng)絡(luò)和以太網(wǎng)中進(jìn)行遠(yuǎn)距離傳輸時(shí),它涉及到相對(duì)較大的數(shù)據(jù)延遲傳輸,這對(duì)于必須實(shí)時(shí)操作的圖像識(shí)別或語音識(shí)別應(yīng)用而言并不是理想的。其次,在邊緣設(shè)備上進(jìn)行計(jì)算需要更易于伸縮的架構(gòu),其中,圖像和語音處理或者在SSD上進(jìn)行的內(nèi)存計(jì)算操作都可用一種伸縮的方式來進(jìn)行。采用這種方式,每一臺(tái)新增的邊緣設(shè)備都會(huì)帶來所需要的增量計(jì)算能力,對(duì)數(shù)據(jù)移動(dòng)方式和時(shí)間進(jìn)行優(yōu)化是這種架構(gòu)可伸縮性的一項(xiàng)關(guān)鍵因素。
圖1:大數(shù)據(jù)、快速數(shù)據(jù)和RISC-V機(jī)會(huì)
在圖1a中,云數(shù)據(jù)中心服務(wù)器利用在大型大數(shù)據(jù)集上訓(xùn)練的深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)來執(zhí)行機(jī)器學(xué)習(xí)的功能。在圖1b中,邊緣設(shè)備中的安全攝像機(jī)采用經(jīng)過大數(shù)據(jù)訓(xùn)練的推理引擎來實(shí)時(shí)識(shí)別圖像(快速數(shù)據(jù))。在圖1c中,智能固態(tài)硬盤設(shè)備采用推理引擎進(jìn)行數(shù)據(jù)識(shí)別和分類,從而有效地利用了此設(shè)備的帶寬。圖1展示了RISC-V內(nèi)核的潛在機(jī)會(huì),它可以自由地添加專有的及未來標(biāo)準(zhǔn)化的矢量指令,這些指令對(duì)于處理深度學(xué)習(xí)和推理技術(shù)相當(dāng)有效。
另一個(gè)類似且重要的趨勢(shì)是大數(shù)據(jù)端和云端上數(shù)據(jù)的移動(dòng)及訪問方式(圖2)。傳統(tǒng)的計(jì)算機(jī)體系結(jié)構(gòu)(圖2a)采用慢速外圍總線,該總線連接到許多其他設(shè)備(例如,專用機(jī)器學(xué)習(xí)加速器、圖形卡、高速固態(tài)硬盤、智能網(wǎng)絡(luò)控制器,等等)。低速總線會(huì)影響設(shè)備的利用率,因?yàn)樗拗屏丝偩€本身、主CPU以及主要的潛在持久內(nèi)存之間的通信能力。這些新型計(jì)算設(shè)備也不可能在它們之間或與主CPU共享內(nèi)存,從而導(dǎo)致在慢速總線上進(jìn)行徒勞且受限制的數(shù)據(jù)移動(dòng)。
關(guān)于如何改善不同計(jì)算設(shè)備(例如CPU和計(jì)算機(jī)及網(wǎng)絡(luò)加速器)之間的數(shù)據(jù)移動(dòng),以及如何在內(nèi)存或快速存儲(chǔ)中訪問數(shù)據(jù),出現(xiàn)了幾個(gè)重要的行業(yè)趨勢(shì)。這些新趨勢(shì)集中在開放標(biāo)準(zhǔn)化工作上,能夠提供更快、更低延遲的串行結(jié)構(gòu)以及更智能的邏輯協(xié)議,從而實(shí)現(xiàn)對(duì)共享內(nèi)存的一致訪問。
新一代以數(shù)據(jù)為中心的計(jì)算
未來的架構(gòu)將需要部署開放接口,以連接到持久性內(nèi)存以及接入計(jì)算加速器并支持高速緩存一致性的快速總線(例如TileLink、RapidIO®、OpenCAPI™和Gen-Z),以期大幅度提高性能,而且使所有設(shè)備共享內(nèi)存并減少不必要的數(shù)據(jù)移動(dòng)。
圖2:計(jì)算體系結(jié)構(gòu)中的數(shù)據(jù)移動(dòng)和訪問
在圖2a中,傳統(tǒng)的計(jì)算體系結(jié)構(gòu)由于把一條慢速外設(shè)總線用于快速存儲(chǔ)器及計(jì)算加速設(shè)備,其能力已達(dá)到其極限。在圖2b中,未來的計(jì)算體系結(jié)構(gòu)采用了開放接口,能夠?yàn)槠脚_(tái)上所有的計(jì)算資源提供統(tǒng)一并支持高速緩存一致性的訪問方式來訪問共享持久內(nèi)存,(這稱為以數(shù)據(jù)為中心的體系結(jié)構(gòu))。在圖2c中,所部署的設(shè)備能夠使用相同的共享內(nèi)存,從而減少了不必要的數(shù)據(jù)復(fù)制。
CPU 外圍核心及網(wǎng)絡(luò)接口控制器的作用將成為支持?jǐn)?shù)據(jù)移動(dòng)的關(guān)鍵因素。CPU外圍核心組件必須支持密鑰內(nèi)存和永久內(nèi)存接口(例如NVDIMM-P),也必須支持駐留在CPU附近的內(nèi)存。還需要實(shí)施面向計(jì)算加速器、智能網(wǎng)絡(luò)和遠(yuǎn)程持久內(nèi)存的智能快速總線。這種總線上的任何設(shè)備(例如CPU、通用或?qū)S糜?jì)算加速器、網(wǎng)絡(luò)適配器、存儲(chǔ)器或內(nèi)存)都可以包含其自己的計(jì)算資源并具有訪問共享內(nèi)存的能力(圖2b和圖2c)。
RISC-V技術(shù)正是優(yōu)化數(shù)據(jù)移動(dòng)的關(guān)鍵推動(dòng)因素,因?yàn)樗軌蛟谒械挠?jì)算加速器設(shè)備上針對(duì)新的機(jī)器學(xué)習(xí)工作負(fù)載來執(zhí)行矢量指令。它實(shí)現(xiàn)了多種開源CPU技術(shù),能夠支持開放內(nèi)存和智能總線接口;且實(shí)現(xiàn)了以數(shù)據(jù)為中心具有一致性共享內(nèi)存的體系結(jié)構(gòu)。
利用RISC-V解決挑戰(zhàn)
大數(shù)據(jù)和快速數(shù)據(jù)為未來的數(shù)據(jù)移動(dòng)帶來了挑戰(zhàn),也為RISC-V指令集架構(gòu)(ISA)鋪平了道路。這種架構(gòu)開放的、模塊化的方法非常適合用作以數(shù)據(jù)為中心的計(jì)算體系結(jié)構(gòu)的基礎(chǔ)。它提供了以下功能:
擴(kuò)展邊緣計(jì)算設(shè)備的計(jì)算資源
添加新的指令,例如用于機(jī)器學(xué)習(xí)工作負(fù)載的矢量指令
尋找非常接近于存儲(chǔ)器和內(nèi)存介質(zhì)的小型計(jì)算內(nèi)核
支持新型計(jì)算范式以及模塊化芯片設(shè)計(jì)方法
支持新型以數(shù)據(jù)為中心的體系結(jié)構(gòu),其中所有的處理單元都可以透過一致的方式訪問共享的持久內(nèi)存,從而優(yōu)化數(shù)據(jù)移動(dòng)
RISC-V由超過100個(gè)組織機(jī)構(gòu)的眾多成員共同開發(fā),這其中包含一個(gè)由軟件和硬件創(chuàng)新者組成的協(xié)作性社區(qū)。這些創(chuàng)新者能夠?qū)SA進(jìn)行改編,使其適應(yīng)特定的目的或項(xiàng)目。任何加入該組織的人都可以根據(jù)一份“Berkeley Software Distribution”(BSD軟件發(fā)布)許可證來設(shè)計(jì)、制造和/或銷售RISC-V芯片和軟件。
結(jié)語
為了實(shí)現(xiàn)其價(jià)值和可能性,數(shù)據(jù)需要捕獲、保存、訪問并轉(zhuǎn)換,以發(fā)揮其全部潛力。含有大數(shù)據(jù)和快速數(shù)據(jù)應(yīng)用的環(huán)境已經(jīng)使通用計(jì)算體系結(jié)構(gòu)的處理能力相形見絀。未來以數(shù)據(jù)為中心的極端應(yīng)用將需要針對(duì)特定用途設(shè)計(jì)的處理能力,以便以開放的方式支持?jǐn)?shù)據(jù)資源的獨(dú)立擴(kuò)展。
擁有一套以在持久內(nèi)存中存儲(chǔ)的數(shù)據(jù)為中心的通用開放計(jì)算機(jī)體系結(jié)構(gòu),同時(shí)又能夠讓所有的設(shè)備發(fā)揮一定的計(jì)算作用,這是由新類型機(jī)器學(xué)習(xí)計(jì)算工作負(fù)載所推動(dòng)的這些新型可擴(kuò)展體系結(jié)構(gòu)得以出現(xiàn)的關(guān)鍵因素??缭皆贫思斑吘壴O(shè)備各個(gè)部分的下一代應(yīng)用都需要這種新型的低能耗處理方式,因?yàn)閷iT的計(jì)算加速處理器將能夠?qū)W⒂谔幚砥涫诌叺娜蝿?wù),從而能夠減少來回移動(dòng)數(shù)據(jù)所浪費(fèi)的時(shí)間,或者能夠執(zhí)行與數(shù)據(jù)無關(guān)的額外計(jì)算。通過發(fā)揮數(shù)據(jù)的力量、潛力和可能性,人類、社會(huì)以及我們的星球都能夠蓬勃發(fā)展。