(本文編譯自SemiWiki)
在探討數(shù)字信號(hào)處理器(DSP)面臨的瓶頸時(shí),人們的目光往往聚焦于計(jì)算吞吐量 —— 每秒的乘累加運(yùn)算(MAC)次數(shù)、向量單元的寬度,以及時(shí)鐘運(yùn)行頻率。然而,與專注于全天候語(yǔ)音處理、雷達(dá)系統(tǒng)或低功耗視覺應(yīng)用的嵌入式人工智能工程師深入交流后,你會(huì)發(fā)現(xiàn)一個(gè)常被忽視的關(guān)鍵問(wèn)題:內(nèi)存停頓才是真正的 “隱形殺手”。
在當(dāng)下的邊緣人工智能與信號(hào)處理工作負(fù)載場(chǎng)景中,數(shù)字信號(hào)處理器需要在極為嚴(yán)苛的功耗與時(shí)間預(yù)算約束下,完成推理、濾波和數(shù)據(jù)轉(zhuǎn)換等復(fù)雜任務(wù)。盡管計(jì)算核心不斷迭代升級(jí),邊緣計(jì)算也致力于拉近計(jì)算引擎與內(nèi)存之間的距離,但工具鏈的進(jìn)步卻未能徹底解決內(nèi)存領(lǐng)域的困境。內(nèi)存讀寫速度依舊難以滿足需求,而矛盾的核心并非內(nèi)存性能本身存在缺陷,而是數(shù)據(jù)無(wú)法在關(guān)鍵節(jié)點(diǎn)及時(shí)抵達(dá)計(jì)算單元,成為阻礙系統(tǒng)高效運(yùn)行的主要障礙 。
為什么數(shù)字信號(hào)處理器會(huì)受延遲問(wèn)題困擾
相較于通用中央處理器(CPU),嵌入式人工智能領(lǐng)域所采用的數(shù)字信號(hào)處理器,大多依賴不可緩存的內(nèi)存區(qū)域,諸如本地緩沖區(qū)、暫存器,以及具備確定性的緊密耦合內(nèi)存(TCM)。這一設(shè)計(jì)考量極具合理性:對(duì)于實(shí)時(shí)系統(tǒng)而言,緩存未命中引發(fā)的不確定性,或是非確定性延遲帶來(lái)的風(fēng)險(xiǎn),均是難以承受之重。然而,這種架構(gòu)也存在弊端 —— 每一次內(nèi)存訪問(wèn)都必須精準(zhǔn)匹配確切的加載延遲,稍有偏差,處理器流水線便會(huì)陷入停滯。
實(shí)際應(yīng)用中,當(dāng)處理器處理頻譜圖解析、卷積窗口運(yùn)算或波束形成序列時(shí),一旦數(shù)據(jù)無(wú)法按時(shí)抵達(dá),整個(gè)處理流程將瞬間中斷。乘累加單元被迫閑置,任務(wù)延遲持續(xù)疊加,不僅運(yùn)算效率大幅降低,功耗也在等待中被白白消耗,嚴(yán)重影響系統(tǒng)整體性能。
引入預(yù)測(cè)性加載處理
試想,若數(shù)字信號(hào)處理器能夠識(shí)別出數(shù)據(jù)訪問(wèn)模式,精準(zhǔn)識(shí)別循環(huán)體以固定步長(zhǎng)讀取內(nèi)存的規(guī)律——例如每隔4個(gè)地址提取一個(gè)數(shù)據(jù),并提前啟動(dòng)“深度預(yù)取”機(jī)制,讓數(shù)據(jù)在實(shí)際加載指令下達(dá)前便已就位。如此一來(lái),內(nèi)存停頓與流水線氣泡將不復(fù)存在,指令執(zhí)行全程流暢無(wú)阻。
這正是傳統(tǒng)預(yù)取模型或基于步長(zhǎng)的流式傳輸技術(shù)所追求的目標(biāo)。盡管這些技術(shù)已被廣泛應(yīng)用且成效顯著,但它們并非本文探討的核心。
一項(xiàng)突破性的預(yù)測(cè)性加載處理技術(shù)正以全新范式顛覆傳統(tǒng)認(rèn)知。這絕非簡(jiǎn)單的預(yù)取技術(shù)升級(jí),而是一場(chǎng)根本性的技術(shù)革新。與傳統(tǒng)方法致力于預(yù)測(cè)下一個(gè)訪問(wèn)地址不同,預(yù)測(cè)性加載處理另辟蹊徑,將核心焦點(diǎn)鎖定在內(nèi)存訪問(wèn)的時(shí)間維度,即精確預(yù)估每次數(shù)據(jù)獲取所需的時(shí)長(zhǎng)。
這項(xiàng)技術(shù)通過(guò)持續(xù)追蹤歷史加載操作的延遲數(shù)據(jù),無(wú)論是靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、緩存旁路操作,還是動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)的訪問(wèn),精準(zhǔn)掌握各個(gè)存儲(chǔ)區(qū)域內(nèi)存請(qǐng)求的常規(guī)響應(yīng)時(shí)長(zhǎng)。中央處理器(CPU)無(wú)需提前預(yù)發(fā)加載指令,而是維持常規(guī)運(yùn)行節(jié)奏。將延遲預(yù)測(cè)應(yīng)用于向量運(yùn)算方面,依據(jù)預(yù)測(cè)的時(shí)間精準(zhǔn)調(diào)度操作執(zhí)行,使處理器能夠在不改變指令流的情況下適應(yīng)內(nèi)存的時(shí)間安排。這種機(jī)制既非依賴推測(cè)性預(yù)判,也不存在額外風(fēng)險(xiǎn),以保守穩(wěn)健的策略完美契合確定性數(shù)字信號(hào)處理器(DSP)的流水線架構(gòu)。特別是在處理存儲(chǔ)于動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)的大型人工智能模型,或是頻繁讀寫臨時(shí)緩沖區(qū)時(shí),由于這類場(chǎng)景下延遲雖穩(wěn)定卻相對(duì)漫長(zhǎng),該技術(shù)的優(yōu)勢(shì)得以充分彰顯。
這種區(qū)別至關(guān)重要。我們不僅僅是在進(jìn)行更智能的預(yù)取操作,而是在讓處理器具備感知延遲和自適應(yīng)時(shí)間安排的能力,即使在存在或不存在傳統(tǒng)緩存或步長(zhǎng)模式的情況下也是如此。
當(dāng)將預(yù)測(cè)性加載處理集成到通用數(shù)字信號(hào)處理器流水線中時(shí),它能立即帶來(lái)可衡量的性能提升和功耗降低。下表展示了在典型的人工智能/數(shù)字信號(hào)處理器場(chǎng)景中的表現(xiàn)。這些數(shù)據(jù)反映了在以下工作負(fù)載中的預(yù)期效能:
對(duì)圖像塊進(jìn)行卷積操作
滑動(dòng)快速傅里葉變換(FFT)窗口操作
對(duì)量化輸入進(jìn)行人工智能模型推理
對(duì)流式傳感器數(shù)據(jù)進(jìn)行濾波或解碼
最小代價(jià),最大影響
預(yù)測(cè)性加載處理的一大核心優(yōu)勢(shì)在于其非侵入特性。這項(xiàng)技術(shù)無(wú)需復(fù)雜的深度重排序邏輯、緩存控制器,也不依賴繁重的推測(cè)機(jī)制,能夠以靈活方式融入眾多數(shù)字信號(hào)處理器(DSP)。無(wú)論是作為專用邏輯模塊,還是借助編譯器輔助的預(yù)取標(biāo)簽,它均可無(wú)縫嵌入指令分發(fā)或加載解碼階段。尤為重要的是,其確定性運(yùn)行模式完全契合功能安全標(biāo)準(zhǔn),包括國(guó)際標(biāo)準(zhǔn)化組織(ISO)制定的26262標(biāo)準(zhǔn),這使其在汽車?yán)走_(dá)、醫(yī)療診斷和工業(yè)控制系統(tǒng)等對(duì)安全性要求極高的領(lǐng)域具備獨(dú)特適配性。
重新審視人工智能數(shù)據(jù)流水線
預(yù)測(cè)性加載處理揭示了一個(gè)重要趨勢(shì):提升運(yùn)算效率,不僅在于強(qiáng)化數(shù)學(xué)計(jì)算能力,更在于確保數(shù)據(jù)能及時(shí)就緒。隨著處理器速度與內(nèi)存延遲之間的差距 —— 即 “內(nèi)存墻”—— 持續(xù)擴(kuò)大,未來(lái)高效的處理器架構(gòu)將不再單純追求更快的核心運(yùn)算速度。相反,它們將依賴更智能的數(shù)據(jù)傳輸路徑,實(shí)現(xiàn)信息的精準(zhǔn)適時(shí)供給,從而消除導(dǎo)致高性能中央處理器(CPU)閑置的關(guān)鍵瓶頸。在數(shù)字信號(hào)處理器日益成為邊緣人工智能運(yùn)算主力的當(dāng)下,我們堅(jiān)信預(yù)測(cè)性加載處理將成為下一代信號(hào)處理核心的標(biāo)志性技術(shù)特征。
畢竟,在數(shù)據(jù)處理領(lǐng)域,有時(shí)決定系統(tǒng)性能的關(guān)鍵并非時(shí)鐘速度,而是數(shù)據(jù)的響應(yīng)時(shí)延。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.