System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 精品欧洲av无码一区二区三区,久久久久亚洲AV无码永不,免费无遮挡无码视频网站
  • 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    一種基于數據處理模式預測的SIMD指令轉換優化方法技術

    技術編號:44533469 閱讀:1 留言:0更新日期:2025-03-07 13:23
    本發明專利技術公開了一種基于數據處理模式預測的SIMD指令轉換優化方法,在以動態指令轉換方式執行可執行文件時,根據待轉換指令操作數的尋址方式確定操作數的類型為數組或矩陣,再根據待轉換指令相關功能代碼段的指令功能確定操作數的語義,完成數據處理模式的預測,根據數據處理模式的預測結果確定操作數的分割方式,將待轉換指令轉換為ARM指令并根據分割方式確定操作數加載的ARM指令形成ARM指令序列,由待轉換指令與ARM指令序列的對應關系形成指令轉換策略列表,根據指令轉換策略列表完成指令轉換,實現了數據處理模式相關的操作數分割,有效降低了分割操作所引入的性能損失。

    【技術實現步驟摘要】

    本專利技術屬于計算機軟件開發,具體涉及一種基于數據處理模式預測的simd指令轉換優化方法。


    技術介紹

    1、現有x86架構下的simd擴展指令集支持的字長有多種,例如在256位模式下向量寄存器能夠存儲256位的數據,常見的操作包括對256位向量的算術運算、邏輯運算等。neon是arm架構中的simd擴展指令集,它的數據向量長度通常為128位。因此,當采用neon指令處理x86架構simd指令相關的較長的數據時,需要先將x86架構的數據拆分為多個neon指令可處理的較短的數據再分別進行處理。然而,由于需要執行額外的拆分和合并操作,所以基于數據拆分的方式在arm架構中模擬執行x86架構simd指令時可能會導致可執行文件執行性能的下降。


    技術實現思路

    1、有鑒于此,本專利技術提供了一種基于數據處理模式預測的simd指令轉換優化方法,通過預測數據處理模式確定了操作數的類型及語義,在操作數精確分割和加載的基礎上實現了simd指令的轉換。

    2、本專利技術提供的一種基于數據處理模式預測的simd指令轉換優化方法,具體包括以下步驟:

    3、步驟1、若可執行文件存在對應的指令轉換策略列表,則根據指令轉換策略列表完成該可執行文件的執行,結束本流程;否則通過動態指令轉換加載執行該可執行文件;

    4、步驟2、獲取當前待轉換指令及其操作數,確定操作數的類型,將arm指令的字長記為第一字長,操作數為線性方式排列的數組時執行步驟3,操作數為非線性排列邏輯結構的矩陣時執行步驟8;p>

    5、步驟3、將操作數記為第一操作數,第一操作數中元素的大小為第一元素大小,第一操作數的長度為第一長度;確定第一操作數的數據類型,當第一操作數為圖像數據時執行步驟4,當第一操作數為音頻數據時執行步驟6;

    6、步驟4、若第一元素大小與第一長度之積大于第一字長,則將第一操作數分割為n個子操作數,再執行步驟5;否則保持第一操作數不變,執行步驟11;

    7、步驟5、建立循環總次數為n的第一循環體,與當前待轉換指令功能相同的arm指令為第一arm指令,令循環次數n的初始值為1,將第n個子操作數加載到第n個arm寄存器中,采用第一arm指令計算第n個子操作數,若n小于n則令n自加1后執行第一循環體,否則結束循環;將當前待轉換指令轉換為第一循環體包含的第一arm指令序列完成轉換,將當前待轉換指令與第一arm指令序列的對應關系添加到指令轉換策略列表中,執行步驟12;

    8、步驟6、若第一元素大小與第一長度之積大于第一字長,則將第一操作數分割為n個子操作數,執行步驟7;否則保持第一操作數不變,執行步驟11;

    9、步驟7、建立循環總次數為n的第二循環體,與當前待轉換指令功能相同的arm指令為第二arm指令,令循環次數n的初始值為1,將第n個子操作數加載到第n個arm寄存器中,采用第二arm指令計算第n個子操作數,若n小于n則令n自加1后執行第二循環體,否則結束循環;將當前待轉換指令轉換為第二循環體包含的第二arm指令序列完成轉換,將當前待轉換指令與第二arm指令序列的對應關系添加到指令轉換策略列表中,執行步驟12;

    10、步驟8、操作數為第一操作數和第二操作數,將第一操作數與第二操作數的元素大小記為第一元素大小,獲取第一操作數的行數p及列數q,獲取第二操作數的行數q及列數s;

    11、步驟9、若第一元素大小與q之積大于第一字長,則將第一操作數的每行數據分割為k個子操作數,將第二操作數的每列數據分割為k個子操作數;否則保持第一操作數和第二操作數不變,執行步驟11;

    12、步驟10、建立循環總次數為q的第三循環體,與當前待轉換指令功能相同的arm指令為第三arm指令,令循環次數q的初始值為1且q不大于q;在第三循環體中建立循環總次數為k的第四循環體,將第一操作數的第q列及第二操作數的第q行分別加載到2k個arm寄存器中;采用第三arm指令完成對第一操作數的第q列及第二操作數的第q行的計算,若q小于q則令q自加1后繼續執行第三循環體,否則結束循環;將當前待轉換指令轉換為第三循環體包含的第三arm指令序列完成轉換,將當前待轉換指令與第三arm指令序列的對應關系添加到指令轉換策略列表中,執行步驟12;

    13、步驟11、選取與當前待轉換指令功能相同的arm指令,將當前待轉換指令與該arm指令的對應關系添加到指令轉換策略列表中,執行步驟12;

    14、步驟12、若可執行文件未完成執行則選取下一個指令作為當前待轉換指令,執行步驟2;否則完成可執行文件的執行,結束本流程。

    15、進一步地,所述步驟2中所述確定操作數的類型的方式為:根據操作數的尋址方式確定,尋址方式確定的地址為基地址與偏移量之和,當偏移量為索引和元素大小之積時,判定操作數為線性方式排列的數組;當偏移量為兩個索引、列數及元素大小的運算結果時,判定操作數為非線性排列邏輯結構的矩陣。

    16、進一步地,所述步驟3中所述確定第一操作數的數據類型的方式為:與當前待轉換指令相關的功能代碼段為第一代碼段,由第一代碼段中的指令形成第一指令集合,當第一指令集合中包含圖像處理的操作碼時,判定第一操作數為圖像數據;當第一指令集合中包含音頻數據處理的操作碼時,判定第一操作數為音頻數據。

    17、進一步地,所述第一代碼段通過二進制代碼特征分析確定。

    18、進一步地,所述步驟4中所述將第一操作數分割為n個子操作數的方式為:將第一元素大小與第一長度之積與第一字長的比值向上取整作為第一分割數n,前n-1個子操作數的長度為第二長度,第二長度的取值滿足為3的倍數且與第一元素大小之積小于第一字長的條件,最后一個子操作數的長度為第一操作數余下的長度。

    19、進一步地,所述步驟6中所述第一操作數分割為n個子操作數的方式為:將第一元素大小與第一長度之積與第一字長的比值向上取整作為第一分割數n,前n-1個子操作數的長度為第一字長,最后一個子操作數的長度為第一操作數余下的長度。

    20、進一步地,所述步驟9中所述將第一操作數的每行數據分割為k個子操作數的方式為:將第一元素大小與q之積與第一字長的比值向上取整作為第二分割數k,前k-1個子操作數的長度為第一字長,最后一個子操作數的長度為第一操作數中每行余下的長度。

    21、進一步地,所述步驟9中所述將第二操作數的每列數據分割為k個子操作數的方式為:前k-1個子操作數的長度為第一字長,最后一個子操作數的長度為第二操作數中每列余下的長度。

    22、進一步地,所述步驟10中所述第四循環體的實現方式為:令循環次數k的初始值為1且k不大于k,將第一操作數的第q列的第k個子操作數加載到第k個arm寄存器中,將第二操作數的第q行的第k個子操作數加載到第k+k個arm寄存器中,若k小于k則令k自加1后繼續執行第四循環體,否則結束循環。

    23、有益效果

    24、本專利技術在以動態指令轉換方式執行可執行文件時,根據待轉換指令操作本文檔來自技高網...

    【技術保護點】

    1.一種基于數據處理模式預測的SIMD指令轉換優化方法,其特征在于,具體包括以下步驟:

    2.根據權利要求1所述的SIMD指令轉換優化方法,其特征在于,所述步驟2中所述確定操作數的類型的方式為:根據操作數的尋址方式確定,尋址方式確定的地址為基地址與偏移量之和,當偏移量為索引和元素大小之積時,判定操作數為線性方式排列的數組;當偏移量為兩個索引、列數及元素大小的運算結果時,判定操作數為非線性排列邏輯結構的矩陣。

    3.根據權利要求1所述的SIMD指令轉換優化方法,其特征在于,所述步驟3中所述確定第一操作數的數據類型的方式為:與當前待轉換指令相關的功能代碼段為第一代碼段,由第一代碼段中的指令形成第一指令集合,當第一指令集合中包含圖像處理的操作碼時,判定第一操作數為圖像數據;當第一指令集合中包含音頻數據處理的操作碼時,判定第一操作數為音頻數據。

    4.根據權利要求3所述的SIMD指令轉換優化方法,其特征在于,所述第一代碼段通過二進制代碼特征分析確定。

    5.根據權利要求1所述的SIMD指令轉換優化方法,其特征在于,所述步驟4中所述將第一操作數分割為N個子操作數的方式為:將第一元素大小與第一長度之積與第一字長的比值向上取整作為第一分割數N,前N-1個子操作數的長度為第二長度,第二長度的取值滿足為3的倍數且與第一元素大小之積小于第一字長的條件,最后一個子操作數的長度為第一操作數余下的長度。

    6.根據權利要求1所述的SIMD指令轉換優化方法,其特征在于,所述步驟6中所述第一操作數分割為N個子操作數的方式為:將第一元素大小與第一長度之積與第一字長的比值向上取整作為第一分割數N,前N-1個子操作數的長度為第一字長,最后一個子操作數的長度為第一操作數余下的長度。

    7.根據權利要求1所述的SIMD指令轉換優化方法,其特征在于,所述步驟9中所述將第一操作數的每行數據分割為K個子操作數的方式為:將第一元素大小與Q之積與第一字長的比值向上取整作為第二分割數K,前K-1個子操作數的長度為第一字長,最后一個子操作數的長度為第一操作數中每行余下的長度。

    8.根據權利要求1所述的SIMD指令轉換優化方法,其特征在于,所述步驟9中所述將第二操作數的每列數據分割為K個子操作數的方式為:前K-1個子操作數的長度為第一字長,最后一個子操作數的長度為第二操作數中每列余下的長度。

    9.根據權利要求1所述的SIMD指令轉換優化方法,其特征在于,所述步驟10中所述第四循環體的實現方式為:令循環次數k的初始值為1且k不大于K,將第一操作數的第q列的第k個子操作數加載到第k個ARM寄存器中,將第二操作數的第q行的第k個子操作數加載到第K+k個ARM寄存器中,若k小于K則令k自加1后繼續執行第四循環體,否則結束循環。

    ...

    【技術特征摘要】

    1.一種基于數據處理模式預測的simd指令轉換優化方法,其特征在于,具體包括以下步驟:

    2.根據權利要求1所述的simd指令轉換優化方法,其特征在于,所述步驟2中所述確定操作數的類型的方式為:根據操作數的尋址方式確定,尋址方式確定的地址為基地址與偏移量之和,當偏移量為索引和元素大小之積時,判定操作數為線性方式排列的數組;當偏移量為兩個索引、列數及元素大小的運算結果時,判定操作數為非線性排列邏輯結構的矩陣。

    3.根據權利要求1所述的simd指令轉換優化方法,其特征在于,所述步驟3中所述確定第一操作數的數據類型的方式為:與當前待轉換指令相關的功能代碼段為第一代碼段,由第一代碼段中的指令形成第一指令集合,當第一指令集合中包含圖像處理的操作碼時,判定第一操作數為圖像數據;當第一指令集合中包含音頻數據處理的操作碼時,判定第一操作數為音頻數據。

    4.根據權利要求3所述的simd指令轉換優化方法,其特征在于,所述第一代碼段通過二進制代碼特征分析確定。

    5.根據權利要求1所述的simd指令轉換優化方法,其特征在于,所述步驟4中所述將第一操作數分割為n個子操作數的方式為:將第一元素大小與第一長度之積與第一字長的比值向上取整作為第一分割數n,前n-1個子操作數的長度為第二長度,第二長度的取值滿足為3的倍數且與第一元素大小之積小于第一字長的條件,最后...

    【專利技術屬性】
    技術研發人員:溫研
    申請(專利權)人:北京麟卓信息科技有限公司
    類型:發明
    國別省市:

    網友詢問留言 已有0條評論
    • 還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 久青草无码视频在线观看| 亚洲人成人无码网www电影首页 | 成在人线av无码免费高潮喷水 | 在线无码视频观看草草视频| 亚洲人成人伊人成综合网无码| 成人免费无码精品国产电影| 久久无码国产专区精品| 亚洲av无码乱码在线观看野外 | 日韩av片无码一区二区不卡电影| 亚洲一级特黄无码片| 人妻无码视频一区二区三区| 国产精品无码无卡无需播放器 | 日韩免费无码一区二区视频| 无码专区久久综合久中文字幕| 亚洲精品人成无码中文毛片| 免费无码AV电影在线观看| 无码av免费网站| 最新中文字幕AV无码不卡| 蕾丝av无码专区在线观看| 无码夫の前で人妻を侵犯| 亚洲av无码一区二区乱子伦as| 亚洲AV中文无码乱人伦| 免费无码又爽又高潮视频| 免费A级毛片无码无遮挡内射| 最新国产AV无码专区亚洲| 国产成人无码精品一区在线观看| 亚洲AV永久无码精品网站在线观看 | 亚洲日韩精品A∨片无码加勒比| 特级做A爰片毛片免费看无码| 尤物永久免费AV无码网站| 亚洲精品无码专区| 无码av免费一区二区三区| 无码人妻久久久一区二区三区| 永久免费av无码入口国语片| 日韩精品无码免费专区午夜| 人妻精品无码一区二区三区| 精品亚洲av无码一区二区柚蜜| 麻豆精品无码国产在线果冻| 夫妻免费无码V看片| 中文字幕无码免费久久9一区9 | 国产精品无码一区二区在线观|