System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術屬于計算機軟件開發,具體涉及一種基于數據訪問語義分析的avx數據向量分割優化方法。
技術介紹
1、avx(advanced?vector?extensions)是intel公司在其處理器中引入的一種simd(單指令多數據)指令集,旨在提高浮點運算和整數運算的性能。avx指令集允許處理器一次處理更多的數據,從而提高處理過程的并行性和吞吐量。avx指令集的關鍵特點包括:采用了更大的寄存器,avx可使用256位寬甚至512位寬的ymm寄存器,較sse指令集使用的128位寬的xmm寄存器來說avx一次能夠處理更多的數據;操作數融合,avx指令能夠同時操作兩個128位的操作數,并將結果存儲在一個256位的寄存器中,有效減少了需要的指令數量和潛在的延遲;混合精度,avx支持混合精度操作,即允許在同一指令中處理單精度(32位)和雙精度(64位)浮點數等。
2、arm64架構的simd指令集,通常被稱為neon,也被稱為高級simd,是armv7架構及以后版本中引入的一種指令集擴展,用于加速多媒體和信號處理等需要大量數據處理的應用,為高性能計算提供了支持。實際中,當在arm64平臺上高效執行x86架構的工業計算軟件時,就需要使用arm64的simd指令高效模擬執行avx指令。然而,由于avx指令支持256位或512位的數據向量而neon指令主要支持128位的數據向量,因此當使用neon指令模擬執行avx指令處理avx數據向量時,就需要將其分割重組后才能處理。
3、現有利用neon指令處理avx數據向量進行數據分
4、綜上所述,當使用neon指令模擬執行avx指令處理avx數據向量時,如何動態確定avx數據向量的數據分割策略是需要解決的關鍵問題。
技術實現思路
1、有鑒于此,本專利技術提供了一種基于數據訪問語義分析的avx數據向量分割優化方法,在指令級優化了數據分割策略,實現了avx指令在arm平臺上的高效模擬執行。
2、本專利技術提供的一種基于數據訪問語義分析的avx數據向量分割優化方法,具體包括以下步驟:
3、步驟1、計算待執行的可執行文件的哈希值,通過動態指令轉換加載執行該可執行文件,根據該哈希值在分割策略映射列表中查找是否存在與該可執行文件對應的文件映射關系,如果存在則獲取該文件映射關系后執行步驟6,否則為該可執行文件創建以哈希值為標識的文件映射關系后執行步驟2;
4、步驟2、將當前待轉換的指令記為第一avx指令,將第一avx指令的地址記為第一avx指令地址,獲取第一avx指令的數據向量的精度和位數;若第一avx指令的類型為數據加載指令則執行步驟3,否則若為計算指令則執行步驟4;
5、步驟3、根據對第一avx指令及相關avx指令的語義分析,確定第一avx指令的數據分割策略及avx寄存器與neon寄存器的映射關系,將第一avx指令地址,及對應的第一avx指令的類型、數據向量的精度和位數、數據分割策略及avx寄存器與neon寄存器的映射關系,加入文件映射關系中;由第一avx指令轉換得到的neon指令完成對neon寄存器的操作,執行步驟5;
6、步驟4、根據第一avx指令的語義及其數據向量的精度和位數確定第一avx指令對應的neon指令;將第一avx指令地址,及對應的第一avx指令的類型、數據向量的精度和位數及neon指令,加入文件映射關系中;由第一avx指令轉換得到的neon指令完成對neon寄存器的操作,執行步驟5;
7、步驟5、若該可執行文件未執行完畢則執行步驟2;否則將該可執行文件的哈希值與文件映射關系添加到分割策略映射列表中,結束本流程;
8、步驟6、根據該可執行文件對應的文件映射關系,完成avx指令到neon指令的轉換,完成該可執行文件的執行,結束本流程。
9、進一步地,所述步驟3中所述根據對第一avx指令及相關avx指令的語義分析,確定第一avx指令的數據分割策略的方式為:
10、步驟2.1、將第一avx指令的源操作數對應的寄存器記為第一源寄存器,將目的操作數對應的寄存器記為第一目標寄存器;從指令相關數據中獲取所有的avx指令及其操作碼、指令后綴和操作數形成相關avx指令集合;
11、步驟2.2、選取相關avx指令集合中的avx指令作為第二avx指令,將第二avx指令的源操作數對應的寄存器記為第二源寄存器,將其目的操作數對應的寄存器記為第二目標寄存器;若第二avx指令為按位操作的指令且第二源寄存器為第一目標寄存器,則將第一avx指令的數據分割策略設置為按位分割策略;否則執行步驟2.3;
12、步驟2.3、若第一目標寄存器已被第二avx指令修改,則將第一avx指令的數據分割策略設置為按數據元素分割策略;否則執行步驟2.4;
13、步驟2.4、若第二源寄存器內的數據包含控制掩碼,且第二源寄存器為第一目標寄存器,則將第一avx指令的數據分割策略設置為按位分割策略;否則將第一avx指令的數據分割策略設置為按數據元素分割策略。
14、進一步地,所述步驟3中根據對第一avx指令及相關avx指令的語義分析,確定第一avx指令的avx寄存器與neon寄存器的映射關系的方式為:
15、步驟3.1、將第一avx指令的數據向量記為第一數據向量,將第一avx指令的數據向量的精度記為第一精度,將第一avx指令的數據向量的位數記為第一位數;若第一avx指令的數據分割策略為按位分割策略則執行步驟3.2,若為按數據元素分割策略則執行步驟3.3;
16、步驟3.2、將第一數據向量的第一位數與neon寄存器的位數的商作為數據分段數量n,將第一數據向量分割為n個數據段,采用neon指令集中的數據加載指令從第一數據向量的低位到高位執行n次數據加載操作完成將第一數據向量到neon寄存器的加載;記錄第一avx指令的avx寄存器與neon寄存器之間的映射關系;
17、步驟3.3、根據第一數據向量的第一精度,采用neon指令集中的數據元素加載指令將第一數據向量加載到neon寄存器中,記錄第一avx指令的avx寄存器與neon寄存器之間的映射關系。
18、進一步地,所述步驟2.1中所述指令相關數據的獲取方式為:從第一avx指令地址開始向后逆向分析到第一條非avx指令本文檔來自技高網...
【技術保護點】
1.一種基于數據訪問語義分析的AVX數據向量分割優化方法,其特征在于,具體包括以下步驟:
2.根據權利要求1所述的AVX數據向量分割優化方法,其特征在于,所述步驟3中所述根據對第一AVX指令及相關AVX指令的語義分析,確定第一AVX指令的數據分割策略的方式為:
3.根據權利要求1所述的AVX數據向量分割優化方法,其特征在于,所述步驟3中根據對第一AVX指令及相關AVX指令的語義分析,確定第一AVX指令的AVX寄存器與Neon寄存器的映射關系的方式為:
4.根據權利要求2所述的AVX數據向量分割優化方法,其特征在于,所述步驟2.1中所述指令相關數據的獲取方式為:從第一AVX指令地址開始向后逆向分析到第一條非AVX指令,將從第一AVX指令到第一條非AVX指令之間的數據作為指令相關數據。
5.根據權利要求1所述的AVX數據向量分割優化方法,其特征在于,所述第一AVX指令地址為偏移地址。
6.根據權利要求1所述的AVX數據向量分割優化方法,其特征在于,所述精度為單精度或雙精度。
7.根據權利要求1所述的AVX數據向量
...【技術特征摘要】
1.一種基于數據訪問語義分析的avx數據向量分割優化方法,其特征在于,具體包括以下步驟:
2.根據權利要求1所述的avx數據向量分割優化方法,其特征在于,所述步驟3中所述根據對第一avx指令及相關avx指令的語義分析,確定第一avx指令的數據分割策略的方式為:
3.根據權利要求1所述的avx數據向量分割優化方法,其特征在于,所述步驟3中根據對第一avx指令及相關avx指令的語義分析,確定第一avx指令的avx寄存器與neon寄存器的映射關系的方式為:
4.根據權利要求2所述的avx數據向量...
【專利技術屬性】
技術研發人員:溫研,
申請(專利權)人:北京麟卓信息科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。