本申請涉及芯片驗證,尤其涉及一種芯片驗證方法及系統(tǒng)。
背景技術:
1、ai芯片是指在芯片中集成有ai運算核(neural?processing?unit,npu)的芯片。ai運算核是一個硬件概念,ai運算核為ai芯片中的核心部分,能夠加速神經(jīng)網(wǎng)絡模型(ai模型)的運行,使用ai運算核能夠快速完成ai模型的運算。
2、ai模型可以執(zhí)行各種復雜的運算任務,如圖像識別、語音識別、自然語言處理等。一個完整的ai模型需要拆解為多個運算任務(job)的形式才能執(zhí)行在對應的ai芯片上。為了使任務在實際芯片硬件環(huán)境中能夠正確、高效地執(zhí)行,需要驗證任務在ai芯片上的運行。
3、然而,常規(guī)的驗證系統(tǒng)無法支持異步并行多任務模式,異步并行多任務模式下不同運算任務之間的地址重疊問題會導致數(shù)據(jù)污染,進而引發(fā)驗證系統(tǒng)比對錯誤的問題。
技術實現(xiàn)思路
1、本申請?zhí)峁┮环N芯片驗證方法及系統(tǒng),以解決異步并行多任務模式下不同運算任務之間的地址重疊問題。
2、第一方面,本申請?zhí)峁┮环N芯片驗證方法,所述方法包括:
3、獲取測試用例,所述測試用例包括芯片運算核的多個運算任務,所述芯片運算核包括多個寄存器傳輸級模塊;
4、在總內(nèi)存區(qū)域中設置所述寄存器傳輸級模塊的子內(nèi)存區(qū)域和指令內(nèi)存區(qū)域,所述子內(nèi)存區(qū)域基于所述寄存器傳輸級模塊的內(nèi)存使用上限值設置;在所述總內(nèi)存區(qū)域中,多個所述子內(nèi)存區(qū)域之間不重疊,所述子內(nèi)存區(qū)域與所述指令內(nèi)存區(qū)域不重疊;
5、根據(jù)所述測試用例和所述子內(nèi)存區(qū)域設置運算任務的寄存器配置信息,所述寄存器配置信息為寄存器傳輸級模塊執(zhí)行所述運算任務時寄存器所需的配置信息;所述寄存器配置信息包括內(nèi)存起始地址和內(nèi)存容量;
6、基于所述寄存器配置信息生成運行指令,并將所述運行指令寫入所述指令內(nèi)存區(qū)域,所述運行指令用于控制所述寄存器傳輸級模塊按照所述寄存器配置信息執(zhí)行所述運算任務;
7、通過所述寄存器傳輸級模塊在所述指令內(nèi)存區(qū)域讀取運行指令,以及基于所述運行指令執(zhí)行所述運算任務,以得到所述運算任務的運行結果。
8、第二方面,本申請?zhí)峁┮环N芯片驗證系統(tǒng),包括仿真控制組件和芯片運算核;其中:
9、所述仿真控制組件,用于獲取測試用例,所述測試用例包括芯片運算核的多個運算任務,所述芯片運算核包括多個寄存器傳輸級模塊;
10、在總內(nèi)存區(qū)域中設置所述寄存器傳輸級模塊的子內(nèi)存區(qū)域和指令內(nèi)存區(qū)域,所述子內(nèi)存區(qū)域基于所述寄存器傳輸級模塊的內(nèi)存使用上限值設置;在所述總內(nèi)存區(qū)域中,多個所述子內(nèi)存區(qū)域之間不重疊,所述子內(nèi)存區(qū)域與所述指令內(nèi)存區(qū)域不重疊;
11、根據(jù)所述測試用例和所述子內(nèi)存區(qū)域設置運算任務的寄存器配置信息,所述寄存器配置信息為寄存器傳輸級模塊執(zhí)行所述運算任務時寄存器所需的配置信息;所述寄存器配置信息包括內(nèi)存起始地址和內(nèi)存容量;
12、基于所述寄存器配置信息生成運行指令,并將所述運行指令寫入所述指令內(nèi)存區(qū)域,所述運行指令用于控制所述寄存器傳輸級模塊按照所述寄存器配置信息執(zhí)行所述運算任務;
13、所述芯片運算核,用于通過所述寄存器傳輸級模塊在所述指令內(nèi)存區(qū)域讀取運行指令,以及基于所述運行指令執(zhí)行所述運算任務,以得到所述運算任務的運行結果。
14、由以上技術方案可知,本申請?zhí)峁┮环N芯片驗證方法及系統(tǒng),所述方法可以獲取測試用例,測試用例包括芯片運算核的多個運算任務。在總內(nèi)存區(qū)域中設置寄存器傳輸級模塊的子內(nèi)存區(qū)域和指令內(nèi)存區(qū)域,在總內(nèi)存區(qū)域中,多個子內(nèi)存區(qū)域之間不重疊,子內(nèi)存區(qū)域與指令內(nèi)存區(qū)域不重疊。再根據(jù)測試用例和子內(nèi)存區(qū)域設置運算任務的寄存器配置信息,寄存器配置信息包括內(nèi)存起始地址和內(nèi)存容量。基于寄存器配置信息生成運行指令,并將運行指令寫入指令內(nèi)存區(qū)域。通過寄存器傳輸級模塊在指令內(nèi)存區(qū)域讀取運行指令,以及基于運行指令執(zhí)行運算任務,以得到運算任務的運行結果。所述方法可以實現(xiàn)異步并行多任務模式,解決異步并行多任務模式下不同運算任務之間的地址重疊問題。
1.一種芯片驗證方法,其特征在于,所述方法包括:
2.根據(jù)權利要求1所述的芯片驗證方法,其特征在于,在總內(nèi)存區(qū)域中設置寄存器傳輸級模塊的子內(nèi)存區(qū)域的步驟,包括:
3.根據(jù)權利要求1所述的芯片驗證方法,其特征在于,在總內(nèi)存區(qū)域中設置所述寄存器傳輸級模塊的指令內(nèi)存區(qū)域的步驟,包括:
4.根據(jù)權利要求1所述的芯片驗證方法,其特征在于,根據(jù)所述測試用例和所述子內(nèi)存區(qū)域設置運算任務的寄存器配置信息的步驟,包括:
5.根據(jù)權利要求3所述的芯片驗證方法,其特征在于,通過所述寄存器傳輸級模塊在所述指令內(nèi)存區(qū)域讀取運行指令的步驟,包括:
6.根據(jù)權利要求1所述的芯片驗證方法,其特征在于,在總內(nèi)存區(qū)域中設置所述寄存器傳輸級模塊的指令內(nèi)存區(qū)域的步驟,包括:
7.根據(jù)權利要求6所述的芯片驗證方法,其特征在于,通過所述寄存器傳輸級模塊在所述指令內(nèi)存區(qū)域讀取運行指令的步驟,包括:
8.根據(jù)權利要求1所述的芯片驗證方法,其特征在于,所述方法還包括:
9.根據(jù)權利要求8所述的芯片驗證方法,其特征在于,所述方法還包括:
10.一種芯片驗證系統(tǒng),其特征在于,包括仿真控制組件和芯片運算核;其中: