[發明專利]異構眾核數據重用方法有效
| 申請號: | 201910927232.4 | 申請日: | 2019-09-27 |
| 公開(公告)號: | CN112579089B | 公開(公告)日: | 2022-11-15 |
| 發明(設計)人: | 尤洪濤;顧龍;姜小成;毛興權;張立博;孫俊 | 申請(專利權)人: | 無錫江南計算技術研究所 |
| 主分類號: | G06F8/41 | 分類號: | G06F8/41 |
| 代理公司: | 蘇州創元專利商標事務所有限公司 32103 | 代理人: | 王健 |
| 地址: | 214083 江蘇*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 異構眾核 數據 重用 方法 | ||
本發明公開了一種異構眾核數據重用方法,包括Stencil計算識別模塊、塊分段任務調度模塊和數據重定向模塊,所述Stencil計算識別模塊完成Stencil計算的識別工作,所述塊分段任務調度模塊完成當進行stencil優化的維度為循環最外層時,改變任務劃分調度的工作,所述數據重定向模塊完成數據重用的工作;包括以下步驟:S1、假設同一數組的同一維度為i,由Stencil計算識別模塊通過掃描計算中涉及的所有數組下標,識別出同一數組的同一維度是否存在i?a/i+a這樣的下標,且其他本維度下標都在[i?a,i+a]范圍之內,如果是,則認為該維度存在Stencil計算,將該維度作為stencil優化的備選維度,執行下一步。本發明減少主存與高速緩存間的數據傳輸量,提升程序性能。
技術領域
本發明屬于并行編譯和優化技術領域,尤其涉及一種異構眾核數據重用方法。
背景技術
異構融合架構處理器通常是由控制核心單元和運算核心陣列組成,控制核心負責程序的初始化、I/O、通信以及運算核心陣列的任務分配等工作,運算核心通常專職負責程序熱點區域的并行加速工作。每個運算核心通常配備有一塊片上高速緩存SPM,它的訪問速度快,延遲低,加速核心段的關鍵數據只有通過DMA布局到片上高速緩存才能達到最佳加速效果。
Stencil計算是科學計算中的一種常用的計算模式,其特點是存在類似[i-1]、[i]、[i+1]這種訪問,在這種計算當中,當前i迭代的部分數據在執行i+1迭代(記為i’)時,仍然能使用,[i]、[i+1]變成了[i’-1]、[i’],如圖1所示。
如圖2所示,一個典型Stencil計算,現有的編譯器處理方法是:對于最外層循環的第i次迭代,AA[i-1][*]、AA[i][*]、AA[i+1][*]三組數據將會通過DMA布局到片上高速緩存以完成計算,到第i+1次迭代時,AA[i][*]、AA[i+1][*]、AA[i+2][*]三組數據將會被布局到片上高速緩存。
由上述可知,現有的處理Stencil計算數據布局的方法存在如下缺點:在處理第i+1次迭代時,事實上AA[i][*]、AA[i+1][*]兩組數據已經存在于局存之中,并不需要再次通過DMA傳輸到高速緩存中來,同理如果Stencil計算的跨度更大,涉及到i-2/i-1/i/i+1/i+2,那么i的相鄰兩次迭代將會導致4組數據被重復傳輸到高速緩存中來,以此類推。
此外,異構眾核結構中,運算核心的任務調度方式往往是按照核心號依次分配循環最外層的一個迭代,如圖1中的程序,0號運算核心分配i=1的迭代,1號運算核心分配i=2的迭代,以此類推,如果總共有64個運算核心,那么0號運算核心處理的下一次迭代將是i=64,如圖3所示。顯然,這種形式的任務劃分調度方法不利于stencil重用優化的進行,因為同一個運算核心所處理的相鄰兩次迭代將不會有數據交集。
發明內容
本發明目的在于提供一種異構眾核數據重用方法,該異構眾核數據重用編譯優化方法解決了數據重復傳輸和任務調度方式不利于數據重用的問題,從而減少主存與高速緩存間的數據傳輸量,提升程序性能。
為達到上述目的,本發明采用的技術方案是:一種異構眾核數據重用方法,基于Stencil計算識別模塊、塊分段任務調度模塊和數據重定向模塊,所述Stencil計算識別模塊用于完成Stencil計算的識別工作,所述塊分段任務調度模塊用于當進行Stencil計算優化的維度為循環最外層時,完成改變任務劃分調度的工作,所述數據重定向模塊用于完成數據重用的工作;
所述數據重用方法包括以下步驟:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于無錫江南計算技術研究所,未經無錫江南計算技術研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910927232.4/2.html,轉載請聲明來源鉆瓜專利網。
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





