两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種基于多版本代碼生成的眾核循環(huán)分塊方法

文檔序號:9489271閱讀:271來源:國知局
一種基于多版本代碼生成的眾核循環(huán)分塊方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機(jī)技術(shù)領(lǐng)域,具體涉及一種基于多版本代碼生成的眾核循環(huán)分塊方法。
【背景技術(shù)】
[0002]對于帶有片上存儲設(shè)備的眾核處理器,為了提高計算性能,通常需要通過DMA (Direct Memory Access,存儲器直接訪問)方式將計算所需的數(shù)據(jù)先從主存?zhèn)鬏數(shù)狡洗鎯?,這樣可以大大降低訪存延遲。但是,由于片上存儲容量很小,只能裝載少量的數(shù)據(jù),并行循環(huán)劃分的不合理會導(dǎo)致片上存儲設(shè)備不能夠有效利用。如循環(huán)劃分粒度過小,會導(dǎo)致頻繁的DMA,片上存儲的利用率不高,循環(huán)劃分粒度過大,則會導(dǎo)致計算所需的數(shù)據(jù)不能放入片上存儲設(shè)備中,從而嚴(yán)重影響加速效果。
[0003]另一方面,對于帶有片上存儲設(shè)備的眾核處理器,編譯器在使用計算核心陣列對核心循環(huán)進(jìn)行并行加速時,通常的手段是直接對主存上的數(shù)據(jù)進(jìn)行訪問或者按照默認(rèn)的分塊粒度對循環(huán)進(jìn)行并行劃分,然后使用DMA將數(shù)據(jù)傳輸?shù)狡洗鎯笤龠M(jìn)行訪問,這兩種方式都不能有效利用片上存儲。

【發(fā)明內(nèi)容】

[0004]本發(fā)明所要解決的技術(shù)問題是針對現(xiàn)有技術(shù)中存在上述缺陷,提供一種基于多版本代碼生成的眾核循環(huán)分塊方法,借助編譯指示對眾核循環(huán)進(jìn)行并行劃分,其中借助用戶指導(dǎo)的編譯指示和運(yùn)行時反饋信息找到眾核循環(huán)劃分的最優(yōu)粒度,從而能夠有效指導(dǎo)編譯器對眾核循環(huán)進(jìn)行劃分,提高片上存儲的使用效率從而提高整體加速效果。
[0005]根據(jù)本發(fā)明,提供了一種基于多版本代碼生成的眾核循環(huán)分塊方法,其中眾核處理器由控制核心和計算核心陣列組成,其中每個計算核心帶有一塊高速緩存;而且其中每個計算核心自帶的一塊高速緩存作為片上存儲以存儲器直接訪問的方式與主存進(jìn)行數(shù)據(jù)傳輸;其中,編譯器在對眾核循環(huán)進(jìn)行并行變換時,根據(jù)編譯器指示的值來確定循環(huán)分塊的粒度,從而生成相應(yīng)的并行代碼,同時編譯器利用生成的并行代碼通過代碼插裝的方式將片上存儲的使用信息在并行變換運(yùn)行時進(jìn)行反饋以便能夠根據(jù)反饋的使用信息對編譯指示的值進(jìn)行相應(yīng)的調(diào)整,以使得片上存儲的利用率最大化。
[0006]優(yōu)選地,根據(jù)反饋的使用信息對編譯指示的值進(jìn)行相應(yīng)的調(diào)整直到能夠?qū)⑵洗鎯ΡM可能用滿。
【附圖說明】
[0007]結(jié)合附圖,并通過參考下面的詳細(xì)描述,將會更容易地對本發(fā)明有更完整的理解并且更容易地理解其伴隨的優(yōu)點(diǎn)和特征,其中:
[0008]圖1示意性地示出了根據(jù)本發(fā)明優(yōu)選實施例的基于多版本代碼生成的眾核循環(huán)分塊方法的流程圖。
[0009]需要說明的是,附圖用于說明本發(fā)明,而非限制本發(fā)明。注意,表示結(jié)構(gòu)的附圖可能并非按比例繪制。并且,附圖中,相同或者類似的元件標(biāo)有相同或者類似的標(biāo)號。
【具體實施方式】
[0010]為了使本發(fā)明的內(nèi)容更加清楚和易懂,下面結(jié)合具體實施例和附圖對本發(fā)明的內(nèi)容進(jìn)行詳細(xì)描述。
[0011 ] 在本發(fā)明中,眾核處理器由控制核心和計算核心陣列組成,其中每個計算核心帶有一塊高速緩存。而且其中,每個計算核心自帶的一塊高速緩存作為片上存儲可通過存儲器直接訪問DMA的方式與主存進(jìn)行數(shù)據(jù)傳輸。
[0012]本發(fā)明提出了使用編譯指示指導(dǎo)并行編譯器對眾核循環(huán)進(jìn)行分塊的方法。編譯器在對眾核循環(huán)進(jìn)行并行變換時,根據(jù)編譯器指示的值來確定循環(huán)分塊的粒度,從而生成相應(yīng)的并行代碼(不同的循環(huán)分塊的粒度生成不同版本的并行代碼),同時編譯器利用生成的并行代碼通過代碼插裝的方式將片上存儲的使用信息在并行變換運(yùn)行時進(jìn)行反饋以便能夠根據(jù)反饋的使用信息對編譯指示的值進(jìn)行相應(yīng)的調(diào)整,以使得片上存儲的利用率最大化(例如,直到能夠?qū)⑵洗鎯ΡM可能用滿)。
[0013]例如,反饋的對象可以是用戶,由此可以直接由用戶根據(jù)反饋的使用信息對編譯指示的值進(jìn)行相應(yīng)的調(diào)整。
[0014]下面將描述根據(jù)本發(fā)明優(yōu)選實施例的基于多版本代碼生成的眾核循環(huán)分塊方法在應(yīng)用時的具體處理示例。
[0015]圖1示意性地示出了根據(jù)本發(fā)明優(yōu)選實施例的基于多版本代碼生成的眾核循環(huán)分塊方法的具體處理示例的流程圖。
[0016]如圖1所示,根據(jù)本發(fā)明優(yōu)選實施例的基于多版本代碼生成的眾核循環(huán)分塊方法的所述具體處理示例包括:
[0017]第一步驟S1:編譯器在對眾核循環(huán)進(jìn)行并行變換時在核心循環(huán)中添加編譯指示;
[0018]第二步驟S2:用戶(或者,分塊粒度的自動設(shè)定調(diào)節(jié)機(jī)制)設(shè)定循環(huán)分塊粒度;
[0019]第三步驟S3:根據(jù)循環(huán)分塊的粒度生成相應(yīng)的加速代碼;
[0020]第四步驟S4:使得編譯運(yùn)行,其中編譯器通過代碼插裝的方式將片上存儲的使用信息在運(yùn)行時進(jìn)行反饋;
[0021]第五步驟S5:根據(jù)反饋信息分析片上存儲的使用情況;
[0022]第六步驟S6:判斷片上存儲是否被充分利用;如果判定片上存儲被充分利用,則進(jìn)入第七步驟S7 ;如果判定片上存儲未被充分利用,則回到第二步驟S2。
[0023]第七步驟S7:得到最優(yōu)的循環(huán)劃分。
[0024]本發(fā)明提供一種基于多版本代碼生成的眾核循環(huán)分塊方法,借助編譯指示對眾核循環(huán)進(jìn)行并行劃分,其中借助用戶指導(dǎo)的編譯指示和運(yùn)行時反饋信息找到眾核循環(huán)劃分的最優(yōu)粒度,從而能夠有效指導(dǎo)編譯器對眾核循環(huán)進(jìn)行劃分,提高片上存儲的使用效率從而提高整體加速效果。
[0025]本發(fā)明的優(yōu)點(diǎn)在于能夠針對如何對眾核循環(huán)進(jìn)行劃分的問題,找到了一種簡單有效的方法,借助用戶指導(dǎo)的編譯指示和運(yùn)行時反饋信息找到眾核循環(huán)劃分的最優(yōu)粒度,從而有效利用眾核處理器上的片上存儲,提高加速效果。
[0026]此外,需要說明的是,除非特別指出,否則說明書中的術(shù)語“第一”、“第二”、“第三”等描述僅僅用于區(qū)分說明書中的各個組件、元素、步驟等,而不是用于表示各個組件、元素、步驟之間的邏輯關(guān)系或者順序關(guān)系等。
[0027]可以理解的是,雖然本發(fā)明已以較佳實施例披露如上,然而上述實施例并非用以限定本發(fā)明。對于任何熟悉本領(lǐng)域的技術(shù)人員而言,在不脫離本發(fā)明技術(shù)方案范圍情況下,都可利用上述揭示的技術(shù)內(nèi)容對本發(fā)明技術(shù)方案作出許多可能的變動和修飾,或修改為等同變化的等效實施例。因此,凡是未脫離本發(fā)明技術(shù)方案的內(nèi)容,依據(jù)本發(fā)明的技術(shù)實質(zhì)對以上實施例所做的任何簡單修改、等同變化及修飾,均仍屬于本發(fā)明技術(shù)方案保護(hù)的范圍內(nèi)。
【主權(quán)項】
1.一種基于多版本代碼生成的眾核循環(huán)分塊方法,其中眾核處理器由控制核心和計算核心陣列組成,其中每個計算核心帶有一塊高速緩存;而且其中每個計算核心自帶的一塊高速緩存作為片上存儲以存儲器直接訪問的方式與主存進(jìn)行數(shù)據(jù)傳輸;其特征在于,編譯器在對眾核循環(huán)進(jìn)行并行變換時,根據(jù)編譯器指示的值來確定循環(huán)分塊的粒度,從而生成相應(yīng)的并行代碼,同時編譯器利用生成的并行代碼通過代碼插裝的方式將片上存儲的使用信息在并行變換運(yùn)行時進(jìn)行反饋以便能夠根據(jù)反饋的使用信息對編譯指示的值進(jìn)行相應(yīng)的調(diào)整,以使得片上存儲的利用率最大化。2.根據(jù)權(quán)利要求1所述的基于多版本代碼生成的眾核循環(huán)分塊方法,其特征在于,根據(jù)反饋的使用信息對編譯指示的值進(jìn)行相應(yīng)的調(diào)整直到能夠?qū)⑵洗鎯ΡM可能用滿。
【專利摘要】本發(fā)明提供了一種基于多版本代碼生成的眾核循環(huán)分塊方法,其中眾核處理器由控制核心和計算核心陣列組成,其中每個計算核心帶有一塊高速緩存;而且其中每個計算核心自帶的一塊高速緩存作為片上存儲以存儲器直接訪問的方式與主存進(jìn)行數(shù)據(jù)傳輸;其特征在于,編譯器在對眾核循環(huán)進(jìn)行并行變換時,根據(jù)編譯器指示的值來確定循環(huán)分塊的粒度,從而生成不同版本的并行代碼,同時編譯器通過代碼插裝的方式將片上存儲的使用信息在運(yùn)行時進(jìn)行反饋以便能夠根據(jù)反饋的使用信息對編譯指示的值進(jìn)行相應(yīng)的調(diào)整,以使得片上存儲的利用率最大化。
【IPC分類】G06F9/38
【公開號】CN105242909
【申請?zhí)枴緾N201510829920
【發(fā)明人】尉紅梅, 張立博, 孫俊, 姜小成
【申請人】無錫江南計算技術(shù)研究所
【公開日】2016年1月13日
【申請日】2015年11月24日
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
金平| 安陆市| 台州市| 乐昌市| 汤阴县| 桃园市| 乡宁县| 台南县| 贵南县| 定襄县| 贵定县| 当雄县| 仪征市| 荆门市| 丹凤县| 荣成市| 雷波县| 贵南县| 莎车县| 潞西市| 乾安县| 廉江市| 班戈县| 葵青区| 南宫市| 花莲县| 犍为县| 秀山| 凤翔县| 福贡县| 金寨县| 桦南县| 钟祥市| 博乐市| 泸州市| 横峰县| 石台县| 六盘水市| 法库县| 泾川县| 阿拉善右旗|