[發明專利]在存在可能的存儲器別名的情況下并行化循環的方法有效
| 申請號: | 201410095115.3 | 申請日: | 2014-03-14 |
| 公開(公告)號: | CN104050025B | 公開(公告)日: | 2018-12-18 |
| 發明(設計)人: | M·G·佩爾金斯;J·L·瑞德福特;K·桑海 | 申請(專利權)人: | 亞德諾半導體集團 |
| 主分類號: | G06F9/30 | 分類號: | G06F9/30 |
| 代理公司: | 中國國際貿易促進委員會專利商標事務所 11038 | 代理人: | 金曉 |
| 地址: | 百慕大群島(*** | 國省代碼: | 百慕大群島;BM |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 存在 可能 存儲器 別名 情況 并行 循環 | ||
1.一種用以在存在可能的存儲器別名的情況下確定可能用于循環的并行化程度的方法,所述方法包括:
提供硬件指令,所述硬件指令至少部分地通過確定用于指針別名的存儲地址之間的距離來在運行時間測試存儲地址,其中所述距離是以數據類型的倍數測量的;以及
提供標量代碼,當執行所述標量代碼時執行函數;
從所述標量代碼生成向量代碼,所述向量代碼包含與所述標量代碼相同的循環數目;以及
設定模式或寄存器,所述模式或寄存器指定并行地運行所述向量代碼以執行所述標量代碼的所述函數的單指令多數據SIMD通道的最大數目,其中SIMD通道的最大數目是距離和啟用的SIMD通道的數目中的較小的一個。
2.如權利要求1所述的方法,還包括服從遵守所述標量代碼的循環攜帶依賴性,啟用最大數目的SIMD通道以獲得最大加速。
3.如權利要求1所述的方法,還包括通過處理器確定SIMD通道的最大數目是1以執行所述標量代碼的函數。
4.如權利要求1所述的方法,還包括提供用以指定啟用的SIMD通道的數目的硬件機構,其中所述硬件機構是選自模式寄存器以及屏蔽寄存器組成的組中的一個,所述模式寄存器含有啟用的SIMD通道的數目,所述屏蔽寄存器控制啟用哪些SIMD通道。
5.如權利要求4所述的方法,設定所述硬件機構依賴于在運行時間的存儲地址的測試來啟用最大數目的SIMD通道。
6.如權利要求4所述的方法,還包括依賴于所述啟用的SIMD通道的數目來更改所述向量代碼的迭代的數目。
7.如權利要求1所述的方法,其中SIMD分級循環允許所述向量代碼在并非向量化因數的倍數的向量長度上運行。
8.如權利要求1所述的方法,其中歸納變量的增量是通過在所述向量代碼中啟用的向量通道的數目來按比例縮放的。
9.如權利要求1所述的方法,其中所述方法包括跨越當前根據模式寄存器啟用的向量通道來執行約簡,所述約簡進一步包括求和、逐位運算、最小值或最大值。
10.如權利要求1所述的方法,其中所述方法包括將值從在所述向量代碼的最后迭代中使用的最后向量通道復制到存儲器或復制到已知的寄存器位置。
11.一種用于在存在可能的存儲器別名的情況下確定可能用于循環的并行化程度的設備,所述設備包括:
用于執行硬件指令的至少一個處理元件,所述硬件指令至少部分地通過確定用于指針別名的存儲地址之間的距離來在運行時間測試存儲地址,其中所述距離是以數據類型的倍數測量的;以及
標量代碼,當執行所述標量代碼時執行函數;
向量代碼,所述向量代碼包含與所述標量代碼相同的循環數目;以及
模式或寄存器,所述模式或寄存器被設定為指定并行地運行所述向量代碼以執行所述標量代碼的所述函數的單指令多數據SIMD通道的最大數目,其中SIMD通道的最大數目是距離和啟用的SIMD通道的數目中的較小的一個。
12.如權利要求11所述的設備,其中所述模式或寄存器指定啟用多少SIMD通道,并且所述模式或寄存器選自模式寄存器以及屏蔽寄存器組成的組,所述模式寄存器含有啟用的SIMD通道的數目,所述屏蔽寄存器控制啟用哪些SIMD通道。
13.如權利要求12所述的設備,其中所述至少一個處理元件能夠操作以依賴于在運行時間的存儲地址的測試來設定所述模式或寄存器以啟用所述最大數目的SIMD通道。
14.如權利要求12所述的設備,其中所述至少一個處理元件能夠操作以依賴于所述啟用的SIMD通道的數目來更改所述向量代碼的迭代的數目。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于亞德諾半導體集團,未經亞德諾半導體集團許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410095115.3/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:治療三叉神經痛的藥物組合物
- 下一篇:一種骨骼蒙皮動畫的實現方法





