日韩成人黄色,透逼一级毛片,狠狠躁天天躁中文字幕,久久久久久亚洲精品不卡,在线看国产美女毛片2019,黄片www.www,一级黄色毛a视频直播

一種多核AI芯片NUMA存儲(chǔ)架構(gòu)靜態(tài)內(nèi)存分配編譯方法及編譯器與流程

文檔序號(hào):39329757發(fā)布日期:2024-09-10 11:36閱讀:15來源:國(guó)知局
一種多核AI芯片NUMA存儲(chǔ)架構(gòu)靜態(tài)內(nèi)存分配編譯方法及編譯器與流程

【】本發(fā)明涉及計(jì)算機(jī),具體涉及一種多核ai芯片numa存儲(chǔ)架構(gòu)靜態(tài)內(nèi)存分配編譯方法及編譯器。

背景技術(shù)

0、
背景技術(shù):

1、編譯器就是將"一種語言(通常為高級(jí)語言)"翻譯為"另一種語言(通常為低級(jí)語言)"的程序。tvm(tensor?virtual?machine,張量虛擬機(jī))就是一個(gè)基于編譯優(yōu)化的深度學(xué)習(xí)推理框架。非統(tǒng)一內(nèi)存訪問(numa,non?uniform?memory?access)是一種用于多處理器的電腦內(nèi)存體設(shè)計(jì),內(nèi)存訪問時(shí)間取決于處理器的內(nèi)存位置。

2、ai計(jì)算的主要思想是通過可擴(kuò)展的互聯(lián)架構(gòu),將海量專用高效計(jì)算模塊重復(fù)堆疊,獲得高性能的ai專用計(jì)算能力。在這種架構(gòu)下,編譯器將ai計(jì)算任務(wù)進(jìn)行精細(xì)劃分,每個(gè)子計(jì)算單元從全局內(nèi)存加載所需的部分?jǐn)?shù)據(jù),在私有內(nèi)存中完成劃分給自己的子計(jì)算任務(wù),再將結(jié)果寫回到全局內(nèi)存中。英偉達(dá)的gpu系列產(chǎn)品即是這種架構(gòu)獲得成功的典型案例。

3、在這個(gè)架構(gòu)的基礎(chǔ)上更進(jìn)一步地精簡(jiǎn)內(nèi)存架構(gòu),通過去除緩存架構(gòu)和多核間的緩存一致性設(shè)計(jì),將多核間的通信與數(shù)據(jù)同步的決策權(quán)從運(yùn)行時(shí)轉(zhuǎn)移到編譯時(shí),通過精細(xì)的靜態(tài)內(nèi)存分配與任務(wù)調(diào)度,可以進(jìn)一步降低ai計(jì)算的運(yùn)行時(shí)開銷。在計(jì)算架構(gòu)保持多核堆疊模式的基礎(chǔ)上,這種精簡(jiǎn)的內(nèi)存架構(gòu)雖然屬于傳統(tǒng)意義上的numa(非統(tǒng)一內(nèi)存訪問)框架,但是在除開訪存親和性帶來的性能問題之外,由于缺少了運(yùn)行時(shí)的緩存一致性保證,還帶來了功能上的難點(diǎn),即如何對(duì)子任務(wù)的私有內(nèi)存空間進(jìn)行高效的編譯時(shí)分配和調(diào)度,保證其數(shù)據(jù)加載內(nèi)容正確,生命周期恰當(dāng),釋放時(shí)機(jī)準(zhǔn)確,空間復(fù)用高效。

4、傳統(tǒng)的業(yè)內(nèi)方案在進(jìn)行靜態(tài)分析時(shí),將調(diào)度到同一個(gè)子計(jì)算單元上的所有子計(jì)算任務(wù)進(jìn)行統(tǒng)一內(nèi)存分析,即將所有子任務(wù)所需要的內(nèi)存大小、創(chuàng)建時(shí)間點(diǎn)、銷毀時(shí)間點(diǎn)在全局進(jìn)行統(tǒng)一考慮。這樣意味著所有任務(wù)用到的內(nèi)存塊之間要兩兩一對(duì)進(jìn)行逐對(duì)分析,包括生命周期是否重疊,內(nèi)存塊大小是否一致來決定內(nèi)存塊的復(fù)用關(guān)系,進(jìn)而進(jìn)一步的決定不同的內(nèi)存塊是否可以使用同一個(gè)內(nèi)存地址。這樣的做法有幾個(gè)明顯的缺點(diǎn):

5、1、由于ai計(jì)算規(guī)模的增長(zhǎng),ai計(jì)算任務(wù)被劃分的子任務(wù)數(shù)量也隨之增長(zhǎng),導(dǎo)致所有子任務(wù)所用到的內(nèi)存塊數(shù)量也大幅增加。傳統(tǒng)方案的生命周期分析由于需要對(duì)內(nèi)存塊進(jìn)行兩兩一對(duì)的逐對(duì)分析,時(shí)間復(fù)雜度與內(nèi)存塊的數(shù)量呈平方關(guān)系,因此ai計(jì)算規(guī)模的增長(zhǎng)導(dǎo)致傳統(tǒng)方案的算法執(zhí)行時(shí)間大幅增長(zhǎng),也使得離線執(zhí)行的編譯時(shí)間大幅增長(zhǎng),編譯器性能明顯下降。

6、2、由于ai計(jì)算架構(gòu)中的計(jì)算模塊數(shù)量不一定總是能夠整除任務(wù)被拆分的份數(shù),子任務(wù)的計(jì)算訪存量因此不盡相同。當(dāng)不同大小的內(nèi)存塊分配到同一個(gè)子計(jì)算模塊上時(shí),基于全局的生命周期分析策略依賴內(nèi)存塊的大小關(guān)系來決定復(fù)用關(guān)系,導(dǎo)致原本可以復(fù)用的內(nèi)存塊被分配到了多個(gè)內(nèi)存地址上,降低了運(yùn)行時(shí)的內(nèi)存使用效率。

7、3、由于內(nèi)存塊數(shù)的增多,以及全局分析帶來的碎片化問題,無論求解器采用貪心策略或者整數(shù)線性規(guī)劃策略,都有更大的幾率導(dǎo)致全局分析無法找到最優(yōu)解,甚至無法找到有效解,求解器很容易在更大的問題規(guī)模下陷入局部最優(yōu)而無法完成內(nèi)存分配。

8、業(yè)內(nèi)也存在一些運(yùn)行時(shí)的內(nèi)存分配和回收策略,比如經(jīng)典的java垃圾回收機(jī)制,可以通過引用計(jì)數(shù)或者可達(dá)性分析對(duì)內(nèi)存進(jìn)行動(dòng)態(tài)分配、管理和釋放。這些強(qiáng)大的機(jī)制可以對(duì)復(fù)雜的通用程序進(jìn)行運(yùn)行時(shí)分析,但是在ai計(jì)算場(chǎng)景下卻面臨如下問題:

9、1、ai計(jì)算架構(gòu)的內(nèi)存組織方式如上所述,與java應(yīng)用程序執(zhí)行的cpu計(jì)算架構(gòu)截然不同。ai計(jì)算架構(gòu)往往缺乏操作系統(tǒng)層面提供的進(jìn)程內(nèi)地址虛擬化機(jī)制,也經(jīng)常缺乏計(jì)算單元間的緩存一致性保證,這樣需要運(yùn)行時(shí)的內(nèi)存分配和回收策略能夠支持更復(fù)雜的多地址空間場(chǎng)景,或者獨(dú)立運(yùn)行在每個(gè)子運(yùn)算單元上,大大增加了運(yùn)行時(shí)策略的復(fù)雜性。

10、2、運(yùn)行時(shí)策略所帶來的運(yùn)行時(shí)開銷同樣不可忽略,java應(yīng)用程序和虛擬機(jī)為了避免運(yùn)行時(shí)過大的垃圾回收開銷做了大量的優(yōu)化工作,但是垃圾回收機(jī)制依然是java應(yīng)用程序中不可忽視的導(dǎo)致性能不穩(wěn)定的因素。對(duì)于ai計(jì)算這種低延時(shí)需求的場(chǎng)景,運(yùn)行時(shí)內(nèi)存分配帶來的額外開銷往往是不可接受的,例如在自動(dòng)駕駛場(chǎng)景中,ai芯片由于運(yùn)行時(shí)內(nèi)存分配導(dǎo)致預(yù)測(cè)或者決策的延時(shí)過大甚至出現(xiàn)超時(shí)情況,在突發(fā)情況下可能付出沉重的代價(jià)。

11、相關(guān)檢索結(jié)果1:中國(guó)申請(qǐng)(專利)號(hào)cn202111602312.6,名稱、基于眾核芯片的內(nèi)存分配方法和內(nèi)存分配裝置,方法包括:針對(duì)任意一個(gè)計(jì)算核,獲取計(jì)算核對(duì)應(yīng)的至少一個(gè)張量的張量屬性信息,其中,張量為分配給該計(jì)算核運(yùn)行的神經(jīng)網(wǎng)絡(luò)算子所對(duì)應(yīng)的張量;將該計(jì)算核對(duì)應(yīng)的各張量的張量屬性信息輸入預(yù)先獲取的內(nèi)存分配模型,以獲取各張量分別對(duì)應(yīng)的分配內(nèi)存地址,能夠縮短內(nèi)存地址分配的時(shí)間,提升為計(jì)算核對(duì)應(yīng)的各張量進(jìn)行內(nèi)存地址分配的效率。技術(shù)要點(diǎn)評(píng)析:1.該專利的內(nèi)存分配方法基于可學(xué)習(xí)的模型,具有不可解釋和不可控的問題,不是一種可控、高效、精確的啟發(fā)式方案;2.該專利的內(nèi)存分配方法屬于全局分配方案,不屬于分層抽象、分治解決的方案。

12、相關(guān)檢索結(jié)果2:中國(guó)申請(qǐng)(專利)號(hào)cn202110997535.0,名稱、一種用于邊緣ai推理框架的內(nèi)存調(diào)度方法,包括:根據(jù)深度學(xué)習(xí)模型,基于嵌入式硬件平臺(tái)運(yùn)行時(shí)權(quán)重載入行為,采用權(quán)重流水線加載方式;根據(jù)深度學(xué)習(xí)模型運(yùn)行時(shí)的張量,對(duì)張量進(jìn)行重新內(nèi)存的重新分配。技術(shù)要點(diǎn)評(píng)析:1、該專利的內(nèi)存調(diào)度方案核心聚焦于ai模型的權(quán)重內(nèi)存流水線調(diào)度,不是一種既可針對(duì)權(quán)重、也可以針對(duì)運(yùn)行時(shí)數(shù)據(jù)的通用分配方法;2、該專利的內(nèi)存調(diào)度方案屬于單核全局分配方案,并非針對(duì)多核架構(gòu)、更加高效的分治方案。

13、本發(fā)明針對(duì)多核ai處理器numa存儲(chǔ)架構(gòu)編譯時(shí),靜態(tài)內(nèi)存分配算法執(zhí)行效率低、內(nèi)存利用率低的技術(shù)問題,對(duì)多核ai芯片numa架構(gòu)靜態(tài)內(nèi)存分配編譯方法及編譯器進(jìn)行了技術(shù)改進(jìn)。


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

0、
技術(shù)實(shí)現(xiàn)要素:

1、本發(fā)明的目的是,提供一種大幅提升內(nèi)存利用率、執(zhí)行效率高的多核ai芯片numa架構(gòu)靜態(tài)內(nèi)存分配編譯方法。

2、為實(shí)現(xiàn)上述目的,本發(fā)明采取的技術(shù)方案是一種多核ai芯片numa存儲(chǔ)架構(gòu)靜態(tài)內(nèi)存分配編譯方法,包括以下步驟:

3、s1、將ai計(jì)算任務(wù)描述為包括節(jié)點(diǎn)算子和計(jì)算邊的ai計(jì)算圖,所述節(jié)點(diǎn)算子代表一個(gè)計(jì)算操作,所述節(jié)點(diǎn)算子之間的計(jì)算邊代表計(jì)算操作之間的計(jì)算數(shù)據(jù)傳遞;

4、s2、將ai計(jì)算圖進(jìn)行模型切分劃分為多個(gè)父任務(wù)計(jì)算圖,所述父任務(wù)計(jì)算圖內(nèi)部所有節(jié)點(diǎn)算子、計(jì)算邊僅發(fā)生在所述多核ai芯片計(jì)算單元私有內(nèi)存上、不依賴全局存儲(chǔ);

5、s3、將每個(gè)父任務(wù)計(jì)算圖進(jìn)行數(shù)據(jù)切分劃分成多個(gè)子任務(wù)計(jì)算圖,所述子任務(wù)計(jì)算圖對(duì)父任務(wù)計(jì)算圖計(jì)算邊進(jìn)行劃分,承擔(dān)部分父任務(wù)計(jì)算圖計(jì)算邊計(jì)算數(shù)據(jù)傳遞;

6、s4、當(dāng)某個(gè)父任務(wù)計(jì)算圖劃分的子任務(wù)計(jì)算圖數(shù)量大于所述多核ai芯片計(jì)算單元數(shù)量時(shí),根據(jù)抽屜原理,將多個(gè)子任務(wù)計(jì)算圖調(diào)度到同一個(gè)計(jì)算單元上去,被調(diào)度到同一個(gè)計(jì)算單元上、隸屬于同一個(gè)父任務(wù)計(jì)算圖的多個(gè)子任務(wù)計(jì)算圖稱之為任務(wù)束,同一個(gè)任務(wù)束內(nèi)的子任務(wù)計(jì)算圖拓?fù)浣Y(jié)構(gòu)相同、但是同一條計(jì)算邊的數(shù)據(jù)傳輸量不一定相同;

7、s5、將任務(wù)束內(nèi)所有子任務(wù)計(jì)算圖計(jì)算邊按照拓?fù)渑判?,將拓?fù)湫蛳嗤菍儆诓煌尤蝿?wù)計(jì)算圖的計(jì)算邊聚合在一起,稱之為內(nèi)存塊束,所述內(nèi)存塊束生命周期與源父任務(wù)計(jì)算圖內(nèi)存塊生命周期完全相同;

8、s6、進(jìn)行子任務(wù)計(jì)算圖內(nèi)存分配,使用內(nèi)存塊束中數(shù)據(jù)量最大的內(nèi)存塊作為所述內(nèi)存塊束的內(nèi)存需求,按照拓?fù)湫驅(qū)?nèi)存塊束進(jìn)行統(tǒng)一生命周期分析和內(nèi)存分配;

9、s7、進(jìn)行父任務(wù)計(jì)算圖內(nèi)存分配,對(duì)于某個(gè)父任務(wù)計(jì)算圖,每個(gè)計(jì)算單元上的任務(wù)束完成內(nèi)存分配后,與其他父任務(wù)計(jì)算圖進(jìn)行第二輪數(shù)據(jù)依賴與生命周期分析,對(duì)步驟s6分配結(jié)果進(jìn)行微調(diào)、避免全局存儲(chǔ)訪問。

10、優(yōu)選地,步驟s2父任務(wù)計(jì)算圖劃分為計(jì)算圖切分,保持節(jié)點(diǎn)算子之間計(jì)算邊的完整性,每個(gè)父任務(wù)計(jì)算圖是ai計(jì)算圖中的任意多個(gè)節(jié)點(diǎn)算子組成,最小的父任務(wù)計(jì)算圖是單個(gè)節(jié)點(diǎn)算子,最大的父任務(wù)計(jì)算圖是整個(gè)ai計(jì)算圖;父任務(wù)計(jì)算圖與父任務(wù)計(jì)算圖之間存在計(jì)算邊關(guān)系,父任務(wù)計(jì)算圖包含的節(jié)點(diǎn)算子與另外一個(gè)父任務(wù)計(jì)算圖包含的節(jié)點(diǎn)算子原本存在的計(jì)算數(shù)據(jù)傳遞關(guān)系。

11、優(yōu)選地,步驟s2父任務(wù)計(jì)算圖劃分依據(jù)父任務(wù)計(jì)算圖節(jié)點(diǎn)算子所占用的私有內(nèi)存空間大小和數(shù)據(jù)排布,如果某個(gè)父任務(wù)計(jì)算圖無法滿足計(jì)算單元的物理內(nèi)存限制或者需要重新整理數(shù)據(jù)排布、而不得不重新通過全局存儲(chǔ)進(jìn)行數(shù)據(jù)通信,則將所述某個(gè)父任務(wù)計(jì)算圖拆分成多個(gè)父任務(wù)計(jì)算圖。

12、優(yōu)選地,步驟s3子任務(wù)計(jì)算圖劃分完整繼承父任務(wù)計(jì)算圖拓?fù)浣Y(jié)構(gòu),對(duì)父任務(wù)計(jì)算圖計(jì)算邊進(jìn)行劃分,每個(gè)子任務(wù)計(jì)算圖產(chǎn)生父任務(wù)計(jì)算圖的部分計(jì)算數(shù)據(jù)。

13、優(yōu)選地,步驟s6子任務(wù)計(jì)算圖內(nèi)存分配完成后,所有內(nèi)存塊繼承所在內(nèi)存塊束的內(nèi)存分配策略,小內(nèi)存塊會(huì)補(bǔ)齊到大內(nèi)存塊的大小,實(shí)際使用過程中不存在內(nèi)存越界的問題。

14、優(yōu)選地,步驟s7如果某個(gè)任務(wù)束所產(chǎn)生的數(shù)據(jù)可以直接被下個(gè)父任務(wù)計(jì)算圖在同一個(gè)計(jì)算單元上的任務(wù)束使用,則進(jìn)行數(shù)據(jù)復(fù)用分析,嘗試避免全局存儲(chǔ)訪問。

15、優(yōu)選地,經(jīng)過步驟s6子任務(wù)計(jì)算圖內(nèi)存分配和步驟s7父任務(wù)計(jì)算圖內(nèi)存分配兩級(jí)內(nèi)存分配后,完成整體編譯時(shí)內(nèi)存分配任務(wù)。

16、本發(fā)明的又一目的是,提供一種大幅提升內(nèi)存利用率、執(zhí)行效率高的多核ai芯片numa架構(gòu)靜態(tài)內(nèi)存分配編譯器。

17、為實(shí)現(xiàn)上述又一目的,本發(fā)明采取的技術(shù)方案是一種多核ai芯片numa存儲(chǔ)架構(gòu)靜態(tài)內(nèi)存分配編譯器,上述的一種多核ai芯片numa存儲(chǔ)架構(gòu)靜態(tài)內(nèi)存分配編譯方法。

18、本發(fā)明一種多核ai芯片numa存儲(chǔ)架構(gòu)靜態(tài)內(nèi)存分配編譯方法及編譯器有益效果如下:增加多層任務(wù)劃分的抽象,首先將ai計(jì)算任務(wù)按模型并行的方式劃分為多個(gè)父任務(wù),然后將父任務(wù)按數(shù)據(jù)并行的方式劃分為多個(gè)子任務(wù);將同一個(gè)父任務(wù)劃分出來,并且調(diào)度到同一個(gè)子計(jì)算模塊的多個(gè)子任務(wù)抽象為一個(gè)任務(wù)束(task?bundle),每個(gè)任務(wù)束中的子任務(wù)由于隸屬于同一個(gè)父任務(wù),其使用的內(nèi)存塊數(shù)量和生命周期完全一致,因此任務(wù)束內(nèi)部子任務(wù)的內(nèi)存分配調(diào)度可以完全一致;在不同的任務(wù)束之間可以通過常規(guī)的內(nèi)存分配與生命周期分析算法完成內(nèi)存分配與調(diào)度;通過多層調(diào)度的方式,可以大幅降低ai計(jì)算的靜態(tài)內(nèi)存分配問題的規(guī)模和復(fù)雜度,將所需要全局分析的內(nèi)存塊數(shù)量降低一到兩個(gè)數(shù)量級(jí),從而大大提高靜態(tài)內(nèi)存分配算法的效率,也增加了全局內(nèi)存分配的內(nèi)存利用率,降低了內(nèi)存碎片化,同時(shí)提升了內(nèi)存分配算法求解器獲得有效解的概率。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1