99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何處理cache miss問(wèn)題以提高加速器效率呢?

FPGA之家 ? 來(lái)源:AI加速 ? 2023-11-16 16:36 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

引言

帶寬是影響FPGA加速器的重要因素,因?yàn)榇罅康牟⑿杏?jì)算對(duì)數(shù)據(jù)量要求很大。如果加速器對(duì)數(shù)據(jù)的訪(fǎng)問(wèn)是不規(guī)則的,那么cache miss就會(huì)大大影響加速器性能。這篇來(lái)自FPGA2019會(huì)議的報(bào)告,向我們展示了如何來(lái)更好的處理cache miss問(wèn)題,提高對(duì)緩存的利用率以及提高加速器效率。

01

Cache miss的問(wèn)題

假設(shè)DDR可以提供12.8GB/s的帶寬,F(xiàn)PGA上的并行加速器的數(shù)據(jù)輸入帶寬為0.8GB/s,可以并列16個(gè)這種加速器。這些加速器通過(guò)arbiter來(lái)直接訪(fǎng)問(wèn)DDR。如果它們?cè)L問(wèn)的數(shù)據(jù)是連續(xù)規(guī)則的,那么DDR的帶寬可以被充分利用。但是這些加速器需要的數(shù)據(jù)在DDR中并不是規(guī)則排列的,如圖1.1。這樣就會(huì)造成頻繁的訪(fǎng)問(wèn)DDR,這樣DDR的帶寬就不夠用,造成的結(jié)果就是加速器會(huì)受到延遲,效率無(wú)法得到提升。就如同圖1.1所示,實(shí)際上有效利用的DDR帶寬只有0.8GB/s。

90b92460-8458-11ee-939d-92fbcf53809c.jpg

圖1.1 不規(guī)則數(shù)據(jù)需要造成頻繁訪(fǎng)問(wèn)DDR

一種解決問(wèn)題的方法是使用blocking cache,將還沒(méi)有用到的數(shù)據(jù)緩存起來(lái)以便之后使用。然而這樣存在兩個(gè)問(wèn)題:一個(gè)是如果緩存中沒(méi)有需要的數(shù)據(jù),那么就需要從DDR中獲取數(shù)據(jù),這就會(huì)有很大延遲,因?yàn)閷?duì)DDR的數(shù)據(jù)進(jìn)行隨機(jī)訪(fǎng)問(wèn)是非常耗時(shí)的;另一個(gè)是緩存的使用效率很低,內(nèi)部大部分?jǐn)?shù)據(jù)都不能被及時(shí)消耗,以便等待被利用到。

90cfb086-8458-11ee-939d-92fbcf53809c.jpg

圖1.2 blocking cache的使用

另外一種解決的辦法是non-blocking cache,這正是本文提出的方法。這種方法的關(guān)鍵是加速器可以允許一定數(shù)量的cache miss。Cache miss不會(huì)阻塞對(duì)后面數(shù)據(jù)的獲取。這就要求前后的數(shù)據(jù)沒(méi)有依賴(lài)關(guān)系,而且允許的cache miss數(shù)量足夠多,能夠允許在這些時(shí)間可以從DDR中獲取miss的數(shù)據(jù),否則一樣會(huì)造成加速器等待喂數(shù)。

90e2e890-8458-11ee-939d-92fbcf53809c.jpg

圖1.3 non-blocking cache

02

傳統(tǒng)的Non-blocking cache結(jié)構(gòu)

圖2.1是一個(gè)基本的non-blocking cache結(jié)構(gòu),它主要由cache array以及MSHR組成。Cache array中含有tag和數(shù)據(jù),tag用來(lái)表示加速器請(qǐng)求的數(shù)據(jù)的在外存中的地址。通過(guò)tag可以判定請(qǐng)求的數(shù)據(jù)在cache中是否存在。MSHR首先被Kroft使用,它含有數(shù)據(jù)未被命中需要去外存獲取的具體信息:包括外存地址,用于判定加速器是否會(huì)再次命中相同的數(shù)據(jù)。還有cache的地址,用于決定從外存獲取的數(shù)據(jù)存儲(chǔ)到cache的位置,給哪個(gè)加速器使用。還有輸入請(qǐng)求確認(rèn)標(biāo)志,表示這個(gè)缺失的數(shù)據(jù)是否從外存讀取到。

基本操作是:當(dāng)加速器第一次從cache中獲取數(shù)據(jù)沒(méi)有命中,那么就在MSHR中記錄下相應(yīng)的信息和狀態(tài),當(dāng)?shù)诙蜗嗤瑪?shù)據(jù)miss發(fā)生,除了在MSHR中記錄信息外,則啟動(dòng)從外部存儲(chǔ)器獲取數(shù)據(jù),并更新到cache中。取回來(lái)的數(shù)據(jù)會(huì)根據(jù)MSHR中的信息將需要的數(shù)據(jù)發(fā)送給加速器。所以一個(gè)包含n個(gè)表項(xiàng)的MSHR有n個(gè)比較器用于比較數(shù)據(jù)地址,是否屬于同一個(gè)miss的數(shù)據(jù)等。使用non-blocking cache能夠提高運(yùn)算效率,減少等待時(shí)間,提高帶寬利用率。但是這種傳統(tǒng)的MSHR消耗很多邏輯資源,不利于規(guī)模擴(kuò)展。

90f5d09a-8458-11ee-939d-92fbcf53809c.jpg

圖2.1 non-blocking cache的基本結(jié)構(gòu)和操作

90fe45fe-8458-11ee-939d-92fbcf53809c.jpg

圖2.2 更新cache

91156c52-8458-11ee-939d-92fbcf53809c.png

圖2.3 MSHR邏輯結(jié)構(gòu)

03

對(duì)non-blocking cache的改進(jìn)

為了能夠有效擴(kuò)展MSHR,可以使用多個(gè)MSHR,每個(gè)MSHR有n個(gè)表項(xiàng),這樣相比于使用一個(gè)MSHR能節(jié)省邏輯資源。但是這涉及到一個(gè)問(wèn)題,如果一個(gè)配置MSHR的請(qǐng)求在多個(gè)MSHR表都有沖突,那么就造成配置MSHR表的等待。這樣就導(dǎo)致了加速器運(yùn)算的等待,不能夠執(zhí)行下一條指令。

912163ea-8458-11ee-939d-92fbcf53809c.png

圖3.1 兩個(gè)MSHR被請(qǐng)求表項(xiàng)都被占用

解決辦法就是Cuckoo hashing算法。假設(shè)有兩個(gè)MSHR表,T1和T2。每個(gè)r個(gè)表項(xiàng)。每個(gè)元素通過(guò)函數(shù)h1和h2來(lái)確定表項(xiàng)位置,即:T1[h1(x)],T2[h2(x)]。為了插入表項(xiàng)內(nèi)容x,檢查T(mén)1對(duì)應(yīng)位置是否空,如果空,就插入。如果非空就檢查T(mén)2,如果T2也非空,這就是沖突的情況,那么就插入到T2中,將原來(lái)的內(nèi)容z替換。然后z再去查詢(xún)T1表,如此循環(huán)進(jìn)行。這樣就不會(huì)造成阻塞。

9130364a-8458-11ee-939d-92fbcf53809c.png

9145f598-8458-11ee-939d-92fbcf53809c.png

9150e246-8458-11ee-939d-92fbcf53809c.png

圖3.2 Cuckoo hashing

還有一個(gè)問(wèn)題是,MSHR中的表項(xiàng)subentries大小是固定的,如果要擴(kuò)展表項(xiàng)的subentries,那么所有的內(nèi)容都是同等擴(kuò)展,這樣可能有一些內(nèi)容并不需要那么大。所以為了能夠有效利用存儲(chǔ)資源,論文作者提出了動(dòng)態(tài)可擴(kuò)展subentries內(nèi)容的方法。將tag和subentries分隔開(kāi)分別存儲(chǔ),這樣如果有更多加速器miss相同的數(shù)據(jù),那么就可以在一個(gè)subentries表后再擴(kuò)展需要的subentries。這樣就是在需要級(jí)聯(lián)的subentries中增加指針來(lái)級(jí)聯(lián)到下一個(gè)subentries表。

91643206-8458-11ee-939d-92fbcf53809c.png

圖3.3 可擴(kuò)展subentries

916f1248-8458-11ee-939d-92fbcf53809c.png

圖3.4 表項(xiàng)擴(kuò)展

917711be-8458-11ee-939d-92fbcf53809c.jpg

圖3.5 整體結(jié)構(gòu)

結(jié)論

本文主要總結(jié)了non-blocking cache的設(shè)計(jì)框架,以及在FPGA上如何使用。介紹比較簡(jiǎn)略,更詳細(xì)的資料還需要了解CPU體系中non-blocking cache的具體結(jié)構(gòu)。






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 存儲(chǔ)器
    +關(guān)注

    關(guān)注

    38

    文章

    7653

    瀏覽量

    167488
  • 加速器
    +關(guān)注

    關(guān)注

    2

    文章

    827

    瀏覽量

    39140
  • 比較器
    +關(guān)注

    關(guān)注

    14

    文章

    1848

    瀏覽量

    109218
  • DDR
    DDR
    +關(guān)注

    關(guān)注

    11

    文章

    732

    瀏覽量

    66858
  • Cache
    +關(guān)注

    關(guān)注

    0

    文章

    130

    瀏覽量

    29092

原文標(biāo)題:一文告訴你怎么解決cache miss的問(wèn)題

文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    在FPGA上如何使用non-blocking cache設(shè)計(jì)框架

    們展示了如何來(lái)更好的處理cache miss問(wèn)題,提高對(duì)緩存的利用率以及提高加速器
    的頭像 發(fā)表于 11-11 17:28 ?5105次閱讀
    在FPGA上如何使用non-blocking <b class='flag-5'>cache</b>設(shè)計(jì)框架

    #硬聲創(chuàng)作季 電子制作:磁性加速器

    加速器DIY
    Mr_haohao
    發(fā)布于 :2022年10月19日 00:19:38

    基于Fast Model的加速器軟件開(kāi)發(fā)

    非常驚艷的加速器,在實(shí)際使用中體驗(yàn)卻不盡如人意的原因。人工智能加速器為例,其中基本的硬件加速單元就是乘加的組合,但如何讓這些乘加
    發(fā)表于 07-29 15:38

    在0.13.0這個(gè)sdk版本中,如何實(shí)現(xiàn)在啟動(dòng)時(shí)將代碼從flash中加載到ILM提高cache miss時(shí)的程序運(yùn)行速度?

    在0.13.0這個(gè)sdk版本中,flash_xip工程模板的ILM只用于存放中斷向量表,個(gè)人感覺(jué)這樣是比較浪費(fèi)的,因此我希望啟動(dòng)時(shí)將代碼從flash中加載到ILM提高cache miss
    發(fā)表于 05-26 08:05

    英特爾媒體加速器參考軟件Linux版用戶(hù)指南

    英特爾媒體加速器參考軟件是用于數(shù)字標(biāo)志、交互式白板(IWBs)和亭位使用模型的參考媒體播放應(yīng)用軟件,它利用固定功能硬件加速來(lái)提高媒體流速、改進(jìn)工作量平衡和資源利用,以及定制的圖形
    發(fā)表于 08-04 06:34

    Intel媒體加速器參考軟件用戶(hù)指南

    英特爾媒體加速器參考軟件是用于數(shù)字標(biāo)志、交互式白板(IWBs)和亭位使用模型的參考媒體播放應(yīng)用軟件,它利用固定功能硬件加速來(lái)提高媒體流速、改進(jìn)工作量平衡和資源利用,以及定制的圖形
    發(fā)表于 08-04 07:07

    利用硬件加速器提高處理器的性能

    處理器內(nèi)部集成的硬件加速器可以實(shí)現(xiàn)三種廣泛使用的信號(hào)處理操作:FIR(有限沖激響應(yīng))、IIR(無(wú)限沖激響應(yīng))和FFT(快速傅里葉變換)。硬件加速器減輕了核
    發(fā)表于 12-04 15:22 ?1565次閱讀

    使用協(xié)處理器加速器的方法介紹

    了解協(xié)處理的價(jià)值,Zynq-7000加速器一致性端口,使用協(xié)處理器加速器的方法以及協(xié)處理器設(shè)計(jì)實(shí)例的概述。
    的頭像 發(fā)表于 11-30 06:15 ?4557次閱讀

    基于RISC-V處理器和卷積加速器的SoC系統(tǒng)

    提高卷積神經(jīng)網(wǎng)絡(luò)(CNN)的計(jì)算效率和能效,8bit定點(diǎn)數(shù)據(jù)作為輸入,設(shè)計(jì)一個(gè)支持激活、批標(biāo)準(zhǔn)化以及池化等CNN網(wǎng)絡(luò)中常見(jiàn)計(jì)算類(lèi)型的卷積加速器,優(yōu)化循環(huán)計(jì)算順序并將其與數(shù)據(jù)復(fù)用技術(shù)
    發(fā)表于 06-02 15:08 ?29次下載

    Linux 6.2將引入計(jì)算加速器子系統(tǒng)

    而在今年的 LPC 大會(huì)中,上游開(kāi)發(fā)人員終于對(duì)如何處理加速器子系統(tǒng)達(dá)成了共識(shí):鑒于各種人工智能加速器和 GPU 之間有很多共同點(diǎn),這個(gè)新的 “accel” 內(nèi)核計(jì)算加速器子系統(tǒng)將利用直
    的頭像 發(fā)表于 11-23 14:47 ?966次閱讀

    硬件加速器提升下一代SHARC處理器的性能

    SHARC ADSP-2146x處理器集成了硬件加速器,可實(shí)現(xiàn)三種廣泛使用的信號(hào)處理操作:FIR(有限脈沖響應(yīng))、IIR(無(wú)限脈沖響應(yīng))和FFT(快速傅里葉變換)。加速器卸載了核心
    的頭像 發(fā)表于 03-03 14:46 ?1687次閱讀
    硬件<b class='flag-5'>加速器</b>提升下一代SHARC<b class='flag-5'>處理器</b>的性能

    基于FPGA的深度學(xué)習(xí)CNN加速器設(shè)計(jì)方案

    因?yàn)镃NN的特有計(jì)算模式,通用處理器對(duì)于CNN實(shí)現(xiàn)效率并不高,不能滿(mǎn)足性能要求。 因此,近來(lái)已經(jīng)提出了基于FPGA,GPU甚至ASIC設(shè)計(jì)的各種加速器來(lái)提高CNN設(shè)計(jì)的性能。
    發(fā)表于 06-14 16:03 ?2809次閱讀
    基于FPGA的深度學(xué)習(xí)CNN<b class='flag-5'>加速器</b>設(shè)計(jì)方案

    CTAccel圖像處理(CIP)加速器

    電子發(fā)燒友網(wǎng)站提供《CTAccel圖像處理(CIP)加速器.pdf》資料免費(fèi)下載
    發(fā)表于 09-15 14:21 ?0次下載
    CTAccel圖像<b class='flag-5'>處理</b>(CIP)<b class='flag-5'>加速器</b>

    粒子加速器加速原理是啥?

    粒子加速器加速原理是啥? 粒子加速器是一種重要的實(shí)驗(yàn)設(shè)備,用于研究粒子物理學(xué)、核物理學(xué)等領(lǐng)域。其主要原理是通過(guò)電場(chǎng)和磁場(chǎng)的作用,對(duì)帶電粒子進(jìn)行
    的頭像 發(fā)表于 12-18 13:52 ?3129次閱讀

    什么是神經(jīng)網(wǎng)絡(luò)加速器?它有哪些特點(diǎn)?

    神經(jīng)網(wǎng)絡(luò)加速器是一種專(zhuān)門(mén)設(shè)計(jì)用于提高神經(jīng)網(wǎng)絡(luò)計(jì)算效率的硬件設(shè)備。隨著深度學(xué)習(xí)技術(shù)的快速發(fā)展和廣泛應(yīng)用,神經(jīng)網(wǎng)絡(luò)模型的復(fù)雜度和計(jì)算量急劇增加,對(duì)計(jì)算性能的要求也越來(lái)越高。傳統(tǒng)的通用處理器
    的頭像 發(fā)表于 07-11 10:40 ?1021次閱讀