那么,算力對(duì)企業(yè)而言是否可以得到提升?近期在2019第56屆設(shè)計(jì)自動(dòng)化大會(huì)(,創(chuàng)新奇智的CTO張發(fā)恩等人聯(lián)合發(fā)布了一篇論文《Efficient GPU NVRAM Persistence with Helper Warps》(https://dac.com/content/2019-dac-accepted-papers)。該論文首次提出一種方法,通過(guò)在GPU上使用NVRAM存儲(chǔ)的有效并且易于使用的事務(wù)處理系統(tǒng),在特定應(yīng)用場(chǎng)景下,GPU性能獲得了4~5倍的提升。據(jù)了解,設(shè)計(jì)自動(dòng)化大會(huì)簡(jiǎn)稱(chēng)為DAC,其英文全稱(chēng)ACM/IEEE Design Automation Conference,目前是電子設(shè)計(jì)自動(dòng)化和嵌入式系統(tǒng)領(lǐng)域的頂級(jí)會(huì)議。
上圖為:創(chuàng)新奇智CTO張發(fā)恩
現(xiàn)狀:非易失性存儲(chǔ)場(chǎng)景中,GPU性能無(wú)法得到完全發(fā)揮
張發(fā)恩在接受企業(yè)網(wǎng)D1Net記者專(zhuān)訪(fǎng)時(shí)指出:目前算力是人工智能領(lǐng)域各企業(yè)都在突破的重點(diǎn),一般采用GPU與CPU方式,但GPU是CPU算力的50倍,因此算力更加強(qiáng)大。GPU一般用于人工智能模型的訓(xùn)練與人工智能模型的推理兩個(gè)應(yīng)用場(chǎng)景下。
當(dāng)科學(xué)家和工程師將GPU應(yīng)用于人工智能模型訓(xùn)練和推理后,雖然發(fā)現(xiàn)帶來(lái)了巨大的算力提升,但在非易失性存儲(chǔ)場(chǎng)景中,GPU性能并沒(méi)有得到完全發(fā)揮,因此,如何進(jìn)一步提升GPU性能成為眾多AI公司的重要關(guān)注點(diǎn)。
提升GPU性能 提升算力
算力是人工智能突破的三大要素之一,而提升GPU性能則是提升算力的關(guān)鍵。企業(yè)需要及時(shí)處理日益增長(zhǎng)的海量客戶(hù)數(shù)據(jù)。比如零售領(lǐng)域里:智能貨柜和渠道陳列平臺(tái)每天都要為客戶(hù)處理數(shù)百萬(wàn)張高清圖片;制造行業(yè)里:工業(yè)視覺(jué)平臺(tái)需要在車(chē)間產(chǎn)線(xiàn)實(shí)時(shí)處理超清圖片;智慧園區(qū):平臺(tái)需要同時(shí)處理多路高清攝像頭視頻數(shù)據(jù);數(shù)據(jù)智能項(xiàng)目需要及時(shí)處理大規(guī)模用戶(hù)行為數(shù)據(jù)等等。
張發(fā)恩發(fā)現(xiàn):當(dāng)企業(yè)的AI訓(xùn)練平臺(tái)對(duì)大量的數(shù)據(jù)進(jìn)行處理時(shí),其異構(gòu)計(jì)算對(duì)GPU性能的提升提出了更為緊迫的要求。張發(fā)恩所在的創(chuàng)新奇智和其他合作伙伴一起,通過(guò)大量實(shí)驗(yàn)推導(dǎo),提出了一種方法:通過(guò)在GPU上使用NVRAM存儲(chǔ)的有效并且易于使用的事務(wù)處理系統(tǒng),可在特定應(yīng)用場(chǎng)景下,讓GPU性能獲得了4~5倍的提升。
開(kāi)放共享 責(zé)任擔(dān)當(dāng)
當(dāng)企業(yè)網(wǎng)D1Net記者詢(xún)問(wèn)張發(fā)恩,為何會(huì)選擇將這一研究成果公布?張發(fā)恩說(shuō):“人工智能產(chǎn)業(yè)需要更多人、更多企業(yè)參與進(jìn)來(lái),形成更大更良好的生態(tài)圈,既有基礎(chǔ)領(lǐng)域的研究,也有落地的實(shí)踐應(yīng)用,這個(gè)產(chǎn)業(yè)才能走得更遠(yuǎn)更穩(wěn)。我所在的創(chuàng)新奇智是一家源于創(chuàng)新工場(chǎng)的人工智能創(chuàng)新科技公司,始終堅(jiān)信技術(shù)為立身之本。公司自成立以來(lái)非常重視技術(shù)研究,為促進(jìn)人工智能行業(yè)更為快速的發(fā)展,我們?cè)笇⒕邆鋸V泛應(yīng)用價(jià)值的技術(shù)分享出來(lái),以期讓更多企業(yè)從中受益,這是一個(gè)創(chuàng)新型企業(yè)應(yīng)有的責(zé)任擔(dān)當(dāng)!”
下附論文解讀:
摘要
非易失性隨機(jī)存取存儲(chǔ)器(NVRAM)是近年來(lái)出現(xiàn)的一種用于彌補(bǔ)主存和外部存儲(chǔ)設(shè)備之間性能差距的存儲(chǔ)器。為了利用NVRAM的非揮發(fā)性,程序應(yīng)該允許持久化存儲(chǔ),這意味著在斷電事件期間必須保持一致性。利用高度的并行性,GPU的設(shè)計(jì)具有高吞吐量。然而,與DRAM相比,NVRAM具有更低的寫(xiě)入帶寬,按照原樣使用NVRAM可能會(huì)產(chǎn)生次優(yōu)的總體系統(tǒng)性能。為了解決這個(gè)問(wèn)題,作者提出使用Helper Warp(暫簡(jiǎn)單譯為輔助調(diào)度單位)將持久性移出事物執(zhí)行的關(guān)鍵路徑,從而減輕延遲的影響。在帶寬限制為1.6GB/s和12GB/s的情況下,該機(jī)制分別實(shí)現(xiàn)了4.4倍和1.5倍的加速,并且預(yù)計(jì)即使在NVRAM帶寬高達(dá)數(shù)百GB/s的某些情況下,也將保持速度優(yōu)勢(shì)。
介紹
非易失性隨機(jī)存取存儲(chǔ)器(NVRAM)作為一種很有前途的NVRAM替代品,在過(guò)去的幾年里逐漸成熟起來(lái)。MVRAM具有大容量和持久性,因此可以啟用和證明諸如事物內(nèi)存之類(lèi)的新編程范例。
可字節(jié)尋址的持久存儲(chǔ)設(shè)備(如NVRAM)有幾種不同的使用方式。在最簡(jiǎn)單的形式中,它可以作為DRAM或者緩存的大容量臨時(shí)替代。這種類(lèi)型的系統(tǒng)在CPU和GPU上都討論過(guò),但是沒(méi)有利用它們的持久性。另一種更復(fù)雜的方法是使用NVRAM作為持久數(shù)據(jù)存儲(chǔ),使其成為事務(wù)處理系統(tǒng)(TPS)的一個(gè)組成部分。TPS的體系結(jié)構(gòu)通常包括兩層:并發(fā)協(xié)議層,它可能表現(xiàn)為事務(wù)內(nèi)存或者鎖定機(jī)制,負(fù)責(zé)檢測(cè)和解決事務(wù)之間的完整性;日志層,以日志的形式執(zhí)行寫(xiě)操作,以實(shí)現(xiàn)持久性,從而在斷電事件期間保持?jǐn)?shù)據(jù)完整性。在CPU上,這種TPS系統(tǒng)可以涉及硬件、軟件和編程語(yǔ)言級(jí)別的變化;在GPU上是落后于CPU的,因?yàn)樵贕PU上存在基于事務(wù)內(nèi)存的工作但在當(dāng)前時(shí)刻不存在基于NVRAM的TPS系統(tǒng)。
盡管NVRAM的存儲(chǔ)密度較大,但它提供的帶寬比DRAM的緩存要少。因此,需要很好地管理帶寬引起的延遲,以避免性能下降。為了減輕帶寬差距帶來(lái)的損失,需要采用軟硬件結(jié)合方法。
本文主要有以下三點(diǎn)貢獻(xiàn):
(1)在這篇工作中作者首次提出了在GPU上使用NVRAM存儲(chǔ)的有效并且易于使用的事務(wù)處理系統(tǒng)。
(2)作者提出使用Helper Warp,利用GPU的閑置計(jì)算資源來(lái)緩解寫(xiě)入帶寬的限制。
(3)作者建立了一種在不同的程序下能夠自適應(yīng)地啟用Helper Warp(輔助調(diào)度單位)達(dá)到最佳性能的機(jī)制。
高效的GPU NVRAM持久性支持
事務(wù)處理通常由并發(fā)控制和持久性日志記錄兩部分組成。論文研究的系統(tǒng)采用軟件事務(wù)內(nèi)存(STM)進(jìn)行并發(fā)控制。作者提出的STM算法采用了快速?zèng)_突檢測(cè)以及重做日志記錄,并解決與全局所有權(quán)記錄的沖突。寫(xiě)/讀集跟蹤的粒度是一個(gè)32位機(jī)器字。對(duì)較大數(shù)據(jù)的訪(fǎng)問(wèn)被視為多個(gè)32位機(jī)器字。該算法不區(qū)分讀與寫(xiě),并通過(guò)支持線(xiàn)程ID較低的事務(wù)來(lái)解決沖突。具體的算法步驟如圖2所示。
圖2:論文中使用的STM算法
在上述TM算法中,對(duì)NVRAM的寫(xiě)入發(fā)生在成功提交期間。在默認(rèn)的嚴(yán)格的Persis-tency模型下,事務(wù)必須等待persist操作完成之后才能聲明提交成功。這將NVRAM寫(xiě)延遲添加到事務(wù)執(zhí)行的關(guān)鍵路徑上,從而增加時(shí)間開(kāi)銷(xiāo)。為了解決這個(gè)問(wèn)題,論文作者提出了一個(gè)commit過(guò)程,它利用Helper Warp將延遲移出關(guān)鍵路徑。
帶有輔助調(diào)度單位的高效日志系統(tǒng)
圖3:論文提出框架中的事務(wù)時(shí)間線(xiàn)
圖4:總體系統(tǒng)框架
作者提出的方法使用輔助調(diào)度單位來(lái)分離事務(wù)的提交和持久步驟。輔助調(diào)度單位負(fù)責(zé)處理事務(wù)的持久性部分,使持久操作能夠與事務(wù)的其余部分異步完成。圖3顯示了添加了輔助調(diào)度單位的總體提交協(xié)議。
每個(gè)線(xiàn)程塊中都有一個(gè)輔助調(diào)度單位,它通過(guò)每個(gè)線(xiàn)程塊共享內(nèi)存與正常調(diào)度單位通信。此外,每個(gè)流多處理器(SM)都有一個(gè)帶寬監(jiān)控窗口,用于跟蹤運(yùn)行時(shí)的瞬時(shí)帶寬占用情況。圖4演示了作者提出的框架,它包括內(nèi)存拓?fù)浜吞砑拥牟糠?。易失性RAM和非易失性RAM之間的聯(lián)系類(lèi)似于最近的AMD Vega框架,該框架旨在支持異構(gòu)內(nèi)存框結(jié)構(gòu),如SSD和DRAM。
系統(tǒng)評(píng)估
圖6:基準(zhǔn)測(cè)試的總體運(yùn)行時(shí)間,啟用了輔助調(diào)度單位(綠色)和禁用了輔助調(diào)度單位(紅色)
圖6展示了使用實(shí)驗(yàn)設(shè)置的基準(zhǔn)測(cè)試的運(yùn)行時(shí)間,包括啟用和禁用輔助調(diào)度單位。這些線(xiàn)表示運(yùn)行時(shí)間隨著NVRAM帶寬限制而變化的趨勢(shì)。綠色和紅色的線(xiàn)和點(diǎn)分別表示啟用和禁用輔助調(diào)度單位的運(yùn)行時(shí)間。隨著帶寬的降低,兩種配置的運(yùn)行時(shí)間都會(huì)增加。不過(guò),沒(méi)有輔助調(diào)度單位的運(yùn)行時(shí)間最終會(huì)增長(zhǎng)得更快,并超過(guò)啟用輔助調(diào)度單位的運(yùn)行時(shí)間。這兩條運(yùn)行時(shí)間存在交叉點(diǎn)。H1的交叉點(diǎn)高達(dá)484GB/s(這意味著即使在易失性RAM帶寬下,輔助調(diào)度單位的性能也會(huì)更好),而B(niǎo)VH1的交叉點(diǎn)則低至11.75GB/s。
圖7:基準(zhǔn)測(cè)試A1的塊級(jí)事務(wù)提交時(shí)間線(xiàn)
圖8:基于元數(shù)據(jù)TM的事務(wù)平均執(zhí)行時(shí)間的細(xì)分
圖7展示了基準(zhǔn)測(cè)試A1中第0塊中事務(wù)的提交時(shí)間線(xiàn)??梢钥闯?,當(dāng)持久性帶寬限制為1.6GB/s時(shí),連續(xù)提交會(huì)出現(xiàn)很大的差距。由于不同塊之間的行為是相似的,這種差異將直接轉(zhuǎn)化為更長(zhǎng)的總體運(yùn)行時(shí)間。有了輔助調(diào)度單位,差距明顯減小,從而大大縮短了基準(zhǔn)測(cè)試的運(yùn)行時(shí)間。
圖8展示了線(xiàn)程塊0中事務(wù)執(zhí)行時(shí)間的細(xì)分情況,其中輔助調(diào)度單位靜態(tài)地打開(kāi)和關(guān)閉。由于帶寬有限造成的每個(gè)sistence階段的延遲會(huì)導(dǎo)致“caso-cade”效應(yīng),使得其他提交事務(wù)的時(shí)間比帶有輔助帶調(diào)度單位的時(shí)間長(zhǎng)。這是由于調(diào)度單位級(jí)別的差異和持有所有權(quán)記錄使得提交事務(wù)需要等待冗長(zhǎng)的持久性操作的完成。這也增加了中止率。通過(guò)啟用輔助調(diào)度單位,持久性可以更快地完成,并且“級(jí)聯(lián)”效應(yīng)得到了緩解。
圖9:基準(zhǔn)測(cè)試B1+H1的持續(xù)帶寬趨勢(shì),帶有輔助調(diào)度單位的自適應(yīng)切換(上圖)和3種配置的運(yùn)行時(shí)間細(xì)分(下圖)
圖9顯示了輔助調(diào)度單位在操作中的切換以響應(yīng)不斷變化的持久性帶寬。總的來(lái)說(shuō),切換顯著減少了H1內(nèi)核的時(shí)間,與總是關(guān)閉輔助調(diào)度單位相比運(yùn)行時(shí)間提高了20%,與總是打開(kāi)輔助調(diào)度單位相比運(yùn)行時(shí)間提高了6%。
圖10:基準(zhǔn)測(cè)試A2的持續(xù)帶寬趨勢(shì),關(guān)閉輔助調(diào)度單位(頂部)和3種配置的運(yùn)行時(shí)間細(xì)分(底部)
與BVH基準(zhǔn)測(cè)試相反,其他一些基準(zhǔn)測(cè)試將觀(guān)察到提交帶寬高于大多數(shù)程序執(zhí)行的閾值,比如A2。其持久性帶寬趨勢(shì)可以在圖10(頂部)中觀(guān)察到。對(duì)于這個(gè)基準(zhǔn)測(cè)試,始終靜態(tài)地打開(kāi)或關(guān)閉輔助調(diào)度單位會(huì)導(dǎo)致輕微的性能損失,如圖10(底部),這是由于切換所涉及的開(kāi)銷(xiāo)造成的。
結(jié)論
在本文中,作者觀(guān)察到事務(wù)GPU程序的性能下降來(lái)源于NVRAM的帶寬限制,這種限制導(dǎo)致了長(zhǎng)時(shí)間的持久性延遲。當(dāng)NVRAM用作主存的臨時(shí)替代品時(shí),延遲將直接添加到事務(wù)的關(guān)鍵路徑上,從而使事務(wù)的運(yùn)行時(shí)間更長(zhǎng)。此外,這種延遲可能會(huì)影響位于相同調(diào)度單位的其他線(xiàn)程,從而導(dǎo)致整個(gè)基準(zhǔn)測(cè)試的運(yùn)行時(shí)間更長(zhǎng).
作者提出了Helper warp這個(gè)概念,它由位于片上共享內(nèi)存中的提交緩沖區(qū)組成,事務(wù)提交將被重定向到該緩沖區(qū)。這將從關(guān)鍵路徑中移除時(shí)間開(kāi)銷(xiāo),使持續(xù)性操作更快。作者還提出了一種方法,使輔助器僅在需要最好性能時(shí)才使用。在某些情況下,閾值可能高達(dá)每秒數(shù)百GB。這包括今天和不久的將來(lái)可用的NVRAM帶寬范圍。