System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內(nèi)的位置。 參數(shù)名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 免费无遮挡无码视频在线观看,内射人妻无码色AV天堂,亚洲第一极品精品无码久久
  • 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    代碼向量化方法及裝置制造方法及圖紙

    技術(shù)編號(hào):44495645 閱讀:4 留言:0更新日期:2025-03-04 18:02
    本申請實(shí)施例提供了一種代碼向量化方法及裝置,涉及計(jì)算機(jī)技術(shù)領(lǐng)域,該方法包括獲取包括多個(gè)單層循環(huán)代碼的多維循環(huán)代碼的屬性信息,根據(jù)屬性信息,確定多維循環(huán)代碼中每層目標(biāo)循環(huán)代碼對應(yīng)的硬件邏輯層;其中,一層目標(biāo)循環(huán)代碼為待進(jìn)行向量化的一個(gè)單層循環(huán)代碼;分別根據(jù)每層目標(biāo)循環(huán)代碼所對應(yīng)各硬件邏輯層的長度上限,切分目標(biāo)循環(huán)代碼,得到多個(gè)代碼塊,并根據(jù)多個(gè)代碼塊所對應(yīng)各硬件邏輯層間的層級關(guān)系,將多個(gè)代碼塊組合為多個(gè)多維子循環(huán)代碼;基于多個(gè)多維子循環(huán)代碼和屬性信息,將多維循環(huán)代碼更新為用于向量計(jì)算單元進(jìn)行向量計(jì)算的向量指令。本申請實(shí)施例可以不受循環(huán)上界的形式限制實(shí)現(xiàn)多維循環(huán)代碼的向量化以提高計(jì)算效率。

    【技術(shù)實(shí)現(xiàn)步驟摘要】

    本申請實(shí)施例涉及計(jì)算機(jī),尤其涉及一種代碼向量化方法及裝置


    技術(shù)介紹

    1、在磁場模擬、語音交互、計(jì)算機(jī)視覺等計(jì)算量非常大的業(yè)務(wù)中,可以對用于實(shí)現(xiàn)業(yè)務(wù)的代碼進(jìn)行向量化以提高計(jì)算效率。其中,向量化可以包括在編譯代碼的過程中將該代碼中的標(biāo)量轉(zhuǎn)換為向量。這樣,具有向量計(jì)算能力的硬件(例如人工智能(artificialintelligence,ai)芯片)中的向量計(jì)算單元可以在一拍(如一個(gè)時(shí)鐘周期)內(nèi)計(jì)算該向量以并行計(jì)算多個(gè)標(biāo)量,從而提高計(jì)算效率。

    2、相關(guān)技術(shù)中,代碼中的循環(huán)代碼往往是大量計(jì)算的來源,對循環(huán)代碼可以進(jìn)行上述向量化。例如,部分芯片支持對多維循環(huán)代碼也即嵌套式循環(huán)的向量化:在確定多維循環(huán)代碼中每層循環(huán)的循環(huán)上界(一個(gè)表達(dá)了循環(huán)范圍的上限的值,可以通過循環(huán)上界計(jì)算循環(huán)次數(shù))為常量也即多維循環(huán)代碼為靜態(tài)shape循環(huán)、且每層循環(huán)的循環(huán)次數(shù)滿足向量計(jì)算單元的長度上限,可以根據(jù)循環(huán)代碼中的計(jì)算所訪問內(nèi)存地址的間隔步長和循環(huán)代碼的掩碼,生成向量指令并將循環(huán)代碼直接替換為向量指令以便向量計(jì)算單元進(jìn)行向量計(jì)算。

    3、但是,在具體業(yè)務(wù)中大多數(shù)多維循環(huán)代碼都是動(dòng)態(tài)shape循環(huán):每層循環(huán)的上界并非常量,導(dǎo)致上述芯片會(huì)直接放棄對動(dòng)態(tài)shape循環(huán)的向量化。并且,部分靜態(tài)shape循環(huán)中有一層或多層循環(huán)的循環(huán)次數(shù)超出向量計(jì)算單元的長度上限,芯片同樣會(huì)放棄對靜態(tài)shape循環(huán)的向量化。這樣,容易導(dǎo)致向量化失敗。


    技術(shù)實(shí)現(xiàn)思路

    1、為了解決上述技術(shù)問題,本申請?zhí)峁┮环N代碼向量化方法及裝置。該代碼向量化方法中,通過對多維循環(huán)代碼進(jìn)行切分以及組合,得到能夠被向量計(jì)算單元處理的多維子循環(huán)代碼,從而實(shí)現(xiàn)對任何循環(huán)次數(shù)的循環(huán)代碼的向量化,避免長度限制導(dǎo)致的向量化失敗問題,提高計(jì)算效率。

    2、第一方面,本申請實(shí)施例提供一種代碼向量化方法,該方法包括:獲取多維循環(huán)代碼的屬性信息;其中,多維循環(huán)代碼包括多個(gè)單層循環(huán)代碼,多個(gè)單層循環(huán)代碼中的每個(gè)單層循環(huán)代碼分別用于實(shí)現(xiàn)多層循環(huán)中的一層循環(huán);根據(jù)屬性信息,確定多維循環(huán)代碼中每層目標(biāo)循環(huán)代碼對應(yīng)的硬件邏輯層;其中,每層目標(biāo)循環(huán)代碼分別為多個(gè)單層循環(huán)代碼中待進(jìn)行向量化的一個(gè)單層循環(huán)代碼;多個(gè)硬件邏輯層用于指示向量計(jì)算單元的多層級訪存規(guī)則,每個(gè)硬件邏輯層分別對應(yīng)多層級訪存中的一層訪存規(guī)則;分別根據(jù)每層目標(biāo)循環(huán)代碼所對應(yīng)各硬件邏輯層的長度上限,切分目標(biāo)循環(huán)代碼,得到多個(gè)代碼塊,并根據(jù)多個(gè)代碼塊所對應(yīng)各硬件邏輯層間的層級關(guān)系,將多個(gè)代碼塊組合為多個(gè)多維子循環(huán)代碼;基于多個(gè)多維子循環(huán)代碼和屬性信息,將多維循環(huán)代碼更新為向量指令;其中,向量指令用于向量計(jì)算單元進(jìn)行向量計(jì)算。

    3、本申請實(shí)施例,按照向量計(jì)算單元中硬件邏輯層的長度上限將多維循環(huán)代碼中的每層循環(huán)代碼切分成多個(gè)代碼塊,并將多個(gè)代碼塊按照向量計(jì)算單元中硬件邏輯層的層級關(guān)系組合為多個(gè)多維子循環(huán),從而保證每個(gè)多維子循環(huán)代碼的維度和長度均符合硬件邏輯層的處理?xiàng)l件,在此基礎(chǔ)上,可以將多維循環(huán)代碼更新為向量指令。這樣,多維循環(huán)代碼的向量化不受靜態(tài)或動(dòng)態(tài)shape、以及任一層循環(huán)的長度限制,從而避免向量化失敗的問題,提高計(jì)算效率。

    4、根據(jù)第一方面,屬性信息包括多個(gè)單層循環(huán)代碼間的層級關(guān)系;根據(jù)屬性信息,確定多維循環(huán)代碼中每層目標(biāo)循環(huán)代碼對應(yīng)的硬件邏輯層,包括:根據(jù)多個(gè)單層循環(huán)代碼間的層級關(guān)系,確定多維循環(huán)代碼中的多個(gè)單層循環(huán)代碼;讀取預(yù)設(shè)接口中用戶設(shè)置的映射參數(shù);其中,映射參數(shù)用于指示每層目標(biāo)循環(huán)代碼使用的硬件邏輯層;根據(jù)映射參數(shù)和多個(gè)單層循環(huán)代碼,為多維循環(huán)代碼中每層目標(biāo)循環(huán)代碼分配硬件邏輯層。

    5、本申請實(shí)施例,用戶可以通過預(yù)設(shè)接口控制多維循環(huán)代碼中目標(biāo)循環(huán)代碼與硬件邏輯層間的映射關(guān)系,實(shí)現(xiàn)對長循環(huán)的優(yōu)先向量化,從而增加每條向量指令所計(jì)算的數(shù)據(jù)的數(shù)量,提升計(jì)算性能。也就是說,用戶可以根據(jù)對業(yè)務(wù)代碼中循環(huán)次數(shù)的感知,確定更準(zhǔn)確的映射關(guān)系,也即選擇計(jì)算性能更優(yōu)的循環(huán)匹配方式,解決編譯過程中因?yàn)閯?dòng)態(tài)shape導(dǎo)致的對循環(huán)次數(shù)無法感知造成的潛在性能優(yōu)化丟失的問題。即使是動(dòng)態(tài)shape,用戶也可能對長度有一些取值空間,從而避免將短循環(huán)放入循環(huán)的內(nèi)層或參與向量化。

    6、根據(jù)第一方面,或者以上第一方面的任意一種實(shí)現(xiàn)方式,屬性信息包括每個(gè)單層循環(huán)代碼的循環(huán)上界,以及多個(gè)單層循環(huán)代碼間的層級關(guān)系;根據(jù)屬性信息,確定多維循環(huán)代碼中每層目標(biāo)循環(huán)代碼對應(yīng)的硬件邏輯層,包括:根據(jù)多個(gè)單層循環(huán)代碼間的層級關(guān)系,確定多維循環(huán)代碼中的多個(gè)單層循環(huán)代碼;根據(jù)每個(gè)單層循環(huán)代碼的循環(huán)上界和每個(gè)硬件邏輯層的長度上限以及多個(gè)單層循環(huán)代碼,為多個(gè)單層循環(huán)代碼中循環(huán)上界為常量的每層目標(biāo)循環(huán)代碼分配硬件邏輯層;根據(jù)多個(gè)單層循環(huán)代碼間的循環(huán)層級關(guān)系和多個(gè)硬件邏輯層之間的層級關(guān)系,以目標(biāo)循環(huán)代碼的循環(huán)層級與硬件邏輯層的層級相匹配為分配規(guī)則,為多個(gè)單層循環(huán)代碼中循環(huán)上界為變量的每層目標(biāo)循環(huán)代碼分配硬件邏輯層。

    7、本申請實(shí)施例,針對用戶未設(shè)置映射目標(biāo)循環(huán)代碼與硬件邏輯層間映射關(guān)系的場景,分別根據(jù)目標(biāo)循環(huán)代碼所實(shí)現(xiàn)循環(huán)的循環(huán)上界為常量和變量的不同情況,結(jié)合硬件邏輯層的限制確定目標(biāo)循環(huán)代碼與硬件邏輯層之間的映射關(guān)系,從而進(jìn)一步拓展適用范圍,減少向量化失敗的問題,提高計(jì)算效率。

    8、根據(jù)第一方面,或者以上第一方面的任意一種實(shí)現(xiàn)方式,根據(jù)多個(gè)代碼塊所對應(yīng)各硬件邏輯層間的層級關(guān)系,將多個(gè)代碼塊組合為多個(gè)多維子循環(huán)代碼,包括:按照多維子循環(huán)代碼中每個(gè)多維子循環(huán)代碼所實(shí)現(xiàn)多維子循環(huán)中的循環(huán)層級與多維子循環(huán)代碼所對應(yīng)各硬件邏輯層的層級關(guān)系相匹配的組合規(guī)則,將每層目標(biāo)循環(huán)代碼分別對應(yīng)的多個(gè)代碼塊中的一個(gè)代碼塊組合為一個(gè)多維子循環(huán)代碼,直到每層目標(biāo)循環(huán)代碼分別對應(yīng)的多個(gè)代碼塊均被組合,得到多維子循環(huán)代碼。

    9、本申請實(shí)施例,根據(jù)代碼塊對應(yīng)的硬件邏輯層的層級關(guān)系,為任一每層目標(biāo)循環(huán)層的中取一個(gè)代碼塊組合為一個(gè)多維子循環(huán)代碼,直到完成所有代碼塊的組合,得到多個(gè)多維子循環(huán)代碼余下目標(biāo)循環(huán)層的代碼塊,可以避免組合不符合原有循環(huán)結(jié)構(gòu)以及過多的組合結(jié)果,從而保證組合得到的多維子循環(huán)的循環(huán)正確性以及理論上子循環(huán)的數(shù)量最少,向量指令最少,進(jìn)一步提高計(jì)算效率。

    10、根據(jù)第一方面,或者以上第一方面的任意一種實(shí)現(xiàn)方式,屬性信息包括每個(gè)單層循環(huán)代碼訪存的間隔步長;基于多個(gè)多維子循環(huán)代碼和屬性信息,將多維循環(huán)代碼更新為向量指令,包括:針對多個(gè)多維子循環(huán)代碼中的每個(gè)多維子循環(huán)代碼,執(zhí)行如下操作以生成多維子循環(huán)代碼的向量指令:根據(jù)多維子循環(huán)代碼中最內(nèi)層子循環(huán)代碼所對應(yīng)硬件邏輯層的長度上限和最內(nèi)層子循環(huán)代碼所實(shí)現(xiàn)循環(huán)的循環(huán)次數(shù),生成最內(nèi)層子循環(huán)代碼的掩碼;從多維子循環(huán)代碼中最內(nèi)層子循環(huán)代碼的外一層子循環(huán)代碼開始,基于內(nèi)一層子循環(huán)代碼所對應(yīng)硬件邏輯層的長度上限、本層子循環(huán)代碼所對應(yīng)硬件邏輯層的長度上限、內(nèi)一層子循環(huán)代碼的掩碼、以及本層子循環(huán)代碼的循環(huán)次數(shù),生成本層子循環(huán)代碼的掩碼,直到生成多維子循環(huán)代碼中每個(gè)子循環(huán)代碼的掩碼,得到多維子本文檔來自技高網(wǎng)...

    【技術(shù)保護(hù)點(diǎn)】

    1.一種代碼向量化方法,其特征在于,所述方法包括:

    2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述屬性信息包括所述多個(gè)單層循環(huán)代碼間的層級關(guān)系;

    3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述屬性信息包括所述每個(gè)單層循環(huán)代碼的循環(huán)上界,以及所述多個(gè)單層循環(huán)代碼間的層級關(guān)系;

    4.根據(jù)權(quán)利要求1-3中任一項(xiàng)所述的方法,其特征在于,所述根據(jù)所述多個(gè)代碼塊所對應(yīng)各硬件邏輯層間的層級關(guān)系,將所述多個(gè)代碼塊組合為多個(gè)多維子循環(huán)代碼,包括:

    5.根據(jù)權(quán)利要求1-4中任一項(xiàng)所述的方法,其特征在于,所述屬性信息包括所述每個(gè)單層循環(huán)代碼訪存的間隔步長;

    6.根據(jù)權(quán)利要求1-5中任一項(xiàng)所述的方法,其特征在于,所述分別根據(jù)所述每層目標(biāo)循環(huán)代碼所對應(yīng)硬件邏輯層的長度上限,切分所述目標(biāo)循環(huán)代碼,得到多個(gè)代碼塊,包括:

    7.一種代碼向量化裝置,其特征在于,所述裝置包括:

    8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述屬性信息包括所述多個(gè)單層循環(huán)代碼間的層級關(guān)系;

    9.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述屬性信息包括所述每個(gè)單層循環(huán)代碼的循環(huán)上界,以及所述多個(gè)單層循環(huán)代碼間的層級關(guān)系;

    10.根據(jù)權(quán)利要求7-9中任一項(xiàng)所述的裝置,其特征在于,所述循環(huán)切分模塊,具體用于:

    11.根據(jù)權(quán)利要求7-10中任一項(xiàng)所述的裝置,其特征在于,所述屬性信息包括所述每個(gè)單層循環(huán)代碼訪存的間隔步長;

    12.根據(jù)權(quán)利要求7-11中任一項(xiàng)所述的裝置,其特征在于,所述循環(huán)切分模塊,具體用于:

    13.一種電子設(shè)備,其特征在于,包括:

    14.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,包括計(jì)算機(jī)程序,其特征在于,當(dāng)所述計(jì)算機(jī)程序在電子設(shè)備上運(yùn)行時(shí),使得所述電子設(shè)備執(zhí)行如權(quán)利要求1至6中任意一項(xiàng)所述的方法。

    15.一種芯片,其特征在于,包括一個(gè)或多個(gè)接口電路和一個(gè)或多個(gè)處理器;所述接口電路用于從電子設(shè)備的存儲(chǔ)器接收信號(hào),并向所述處理器發(fā)送所述信號(hào),所述信號(hào)包括存儲(chǔ)器中存儲(chǔ)的計(jì)算機(jī)指令;當(dāng)所述處理器執(zhí)行所述計(jì)算機(jī)指令時(shí),使得所述電子設(shè)備執(zhí)行權(quán)利要求1至6中任意一項(xiàng)所述的方法。

    16.一種計(jì)算機(jī)程序產(chǎn)品,其特征在于,包括計(jì)算機(jī)程序,當(dāng)所述計(jì)算機(jī)程序被電子設(shè)備執(zhí)行時(shí),使得所述電子設(shè)備執(zhí)行權(quán)利要求1至6中任意一項(xiàng)所述的方法。

    ...

    【技術(shù)特征摘要】

    1.一種代碼向量化方法,其特征在于,所述方法包括:

    2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述屬性信息包括所述多個(gè)單層循環(huán)代碼間的層級關(guān)系;

    3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述屬性信息包括所述每個(gè)單層循環(huán)代碼的循環(huán)上界,以及所述多個(gè)單層循環(huán)代碼間的層級關(guān)系;

    4.根據(jù)權(quán)利要求1-3中任一項(xiàng)所述的方法,其特征在于,所述根據(jù)所述多個(gè)代碼塊所對應(yīng)各硬件邏輯層間的層級關(guān)系,將所述多個(gè)代碼塊組合為多個(gè)多維子循環(huán)代碼,包括:

    5.根據(jù)權(quán)利要求1-4中任一項(xiàng)所述的方法,其特征在于,所述屬性信息包括所述每個(gè)單層循環(huán)代碼訪存的間隔步長;

    6.根據(jù)權(quán)利要求1-5中任一項(xiàng)所述的方法,其特征在于,所述分別根據(jù)所述每層目標(biāo)循環(huán)代碼所對應(yīng)硬件邏輯層的長度上限,切分所述目標(biāo)循環(huán)代碼,得到多個(gè)代碼塊,包括:

    7.一種代碼向量化裝置,其特征在于,所述裝置包括:

    8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述屬性信息包括所述多個(gè)單層循環(huán)代碼間的層級關(guān)系;

    9.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述屬性信息包括所述每個(gè)單層循環(huán)代碼的循環(huán)上界,...

    【專利技術(shù)屬性】
    技術(shù)研發(fā)人員:楊揚(yáng)郭依蓬韓曉雷
    申請(專利權(quán))人:華為技術(shù)有限公司
    類型:發(fā)明
    國別省市:

    網(wǎng)友詢問留言 已有0條評論
    • 還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會(huì)獲得科技券。

    1
    主站蜘蛛池模板: 十八禁视频在线观看免费无码无遮挡骂过 | 高潮潮喷奶水飞溅视频无码| 精品无码人妻一区二区三区18| 办公室丝袜激情无码播放| 久久国产加勒比精品无码| 免费A级毛片无码久久版 | 中文无码伦av中文字幕| 亚洲精品天堂无码中文字幕| 国产色无码精品视频免费| 亚洲爆乳无码精品AAA片蜜桃| 变态SM天堂无码专区| 无码av专区丝袜专区| 亚洲人成无码网站在线观看| 亚洲Av无码专区国产乱码DVD | 人妻无码中文字幕| 亚洲人av高清无码| 98久久人妻无码精品系列蜜桃| 亚洲va中文字幕无码| 精品少妇人妻AV无码专区不卡 | 少妇人妻无码专区视频| 岛国无码av不卡一区二区| 成人麻豆日韩在无码视频| 亚洲AV成人无码网站| 无码精品人妻一区二区三区免费看| 伊人久久无码精品中文字幕| 性色av极品无码专区亚洲| 精品亚洲成A人无码成A在线观看| 中文无码久久精品| 东京热av人妻无码专区| 国产亚洲情侣一区二区无码AV | 亚洲AV无码专区亚洲AV桃| 亚洲精品中文字幕无码A片老| 欧洲精品久久久av无码电影| 无码囯产精品一区二区免费| 四虎成人精品无码| 亚洲AV无码国产精品色| 性饥渴少妇AV无码毛片| 内射无码专区久久亚洲| 精品人妻少妇嫩草AV无码专区 | 亚洲毛片无码专区亚洲乱| 中文字幕无码成人免费视频 |