本發(fā)明涉及人工智能,尤其涉及一種模擬計算方法、設(shè)備及存儲介質(zhì)。
背景技術(shù):
1、隨著人工智能技術(shù)的飛速發(fā)展,人工智能芯片作為其核心驅(qū)動力之一,在模型訓(xùn)練與推理過程中扮演著至關(guān)重要的角色。
2、為了提升計算效率并降低成本,當(dāng)前市場上的人工智能芯片普遍支持低精度浮點數(shù)計算(如fp8、fp16和fp32),并不支持高精度浮點數(shù)計算(如fp64)。這種設(shè)計策略顯著提升了計算速度,并降低了功耗和硬件成本,尤其適用于大規(guī)模數(shù)據(jù)處理和實時應(yīng)用場景。
3、由于不支持高精度浮點數(shù)計算,需要通過高精度計算實現(xiàn)的應(yīng)用無法在人工智能芯片上落地,這限制了人工智能模型的精度和人工智能芯片的應(yīng)用范疇。
技術(shù)實現(xiàn)思路
1、本發(fā)明提供一種模擬計算方法、設(shè)備及存儲介質(zhì),用以解決相關(guān)技術(shù)中人工智能芯片不支持高精度計算的缺陷。
2、本發(fā)明提供一種模擬計算方法,包括:
3、獲取用于高精度計算的兩個原始數(shù)值;
4、在所述原始數(shù)值為高精度數(shù)值的情況下,將所述高精度數(shù)值轉(zhuǎn)換為兩個低精度數(shù)值,并將所述高精度計算拆分為至少兩個計算項,每個計算項由兩個低精度數(shù)值參與實現(xiàn);
5、對每個計算項進行計算,得到每個計算項的近似值和誤差值;
6、基于每個計算項的近似值和誤差值,確定模擬所述高精度計算的計算結(jié)果。
7、根據(jù)本發(fā)明提供的一種模擬計算方法,所述將所述高精度數(shù)值轉(zhuǎn)換為兩個低精度數(shù)值,包括:
8、將所述高精度數(shù)值進行精度降低處理,得到第一低精度數(shù)值,將所述高精度數(shù)值與所述一個低精度數(shù)值之間的差值作為第二低精度數(shù)值。
9、根據(jù)本發(fā)明提供的一種模擬計算方法,在所述高精度計算為兩個高精度數(shù)值的加法的情況下,所述將所述高精度計算拆分為至少兩個計算項,包括:
10、將所述兩個高精度數(shù)值的加法拆分為四個順序執(zhí)行的計算項;
11、所述四個順序執(zhí)行的計算項包括將兩個高精度數(shù)值各自的第一低精度數(shù)值相加得到第一數(shù)值,將兩個高精度數(shù)值各自的第二低精度數(shù)值相加得到第二數(shù)值、并將所述第一數(shù)值的第二低精度數(shù)值更新為所述第一數(shù)值的第二低精度數(shù)值和所述第二數(shù)值的第一低精度數(shù)值之和,將所述第一數(shù)值的第一低精度數(shù)值和所述第一數(shù)值的第二低精度數(shù)值相加得到更新后的第一數(shù)值、并將所述第一數(shù)值的第二低精度數(shù)值更新為所述第一數(shù)值的第二低精度數(shù)值和所述第二數(shù)值的第二低精度數(shù)值之和,將更新后的第一數(shù)值的第一低精度數(shù)值和更新后的第一數(shù)值的第二低精度數(shù)值相加。
12、根據(jù)本發(fā)明提供的一種模擬計算方法,在所述高精度計算為兩個高精度數(shù)值的乘法的情況下,所述將所述高精度計算拆分為至少兩個計算項,包括:
13、將所述兩個高精度數(shù)值的乘法拆分為三個計算項之和;
14、所述三個計算項包括將所述兩個高精度數(shù)值各自的第一低精度數(shù)值相乘,將一個高精度數(shù)值的第一低精度數(shù)值與另一個高精度數(shù)值的第二低精度數(shù)值相乘,將另一個高精度數(shù)值的第二低精度與另一個高精度數(shù)值的第一低精度數(shù)值相乘。
15、根據(jù)本發(fā)明提供的一種模擬計算方法,在所述高精度計算為兩個高精度數(shù)值的除法的情況下,所述將所述高精度計算拆分為至少兩個計算項,包括:
16、將所述兩個高精度數(shù)值的除法拆分為五個順序執(zhí)行的計算項;
17、所述五個順序執(zhí)行的計算項包括將兩個高精度數(shù)值各自的第一低精度數(shù)值相除得到第一數(shù)值,將一個高精度數(shù)值與所述第一數(shù)值相乘得到第二數(shù)值,將另一個高精度數(shù)值與所述第二數(shù)值相減得到第三數(shù)值,將所述第三數(shù)值的第一低精度數(shù)值與所述一個高精度數(shù)值的第一低精度數(shù)值的倒數(shù)相乘得到第四數(shù)值,將兩個所述第一數(shù)值與所述第四數(shù)值相加。
18、根據(jù)本發(fā)明提供的一種模擬計算方法,在所述計算項包括加法的情況下,所述對每個計算項進行計算,得到每個計算項的近似值和誤差值,包括:
19、將參與所述加法的兩個低精度數(shù)值相加,得到所述加法的近似值;
20、將所述加法的近似值,以及參與所述加法的兩個低精度數(shù)值,確定所述兩個低精度數(shù)值各自在所述加法中的參與值;
21、基于所述兩個低精度數(shù)值、以及所述兩個低精度數(shù)值各自在所述加法中的參與值,確定所述加法的誤差值。
22、根據(jù)本發(fā)明提供的一種模擬計算方法,在所述計算項包括乘法的情況下,所述對每個計算項進行計算,得到每個計算項的近似值和誤差值,包括:
23、將參與所述乘法的兩個低精度數(shù)據(jù)分別拆分為高階項和低階項;
24、將所述兩個低精度數(shù)據(jù)的高階項之積作為所述乘法的近似值;
25、將所述兩個低精度數(shù)據(jù)的高階項與低階項之積,以及所述兩個低精度數(shù)據(jù)的低階項之積,作為所述乘法的誤差值。
26、根據(jù)本發(fā)明提供的一種模擬計算方法,還包括:
27、在所述原始數(shù)值為低精度數(shù)據(jù)的情況下,將所述高精度計算作為所述計算項。
28、本發(fā)明提供一種模擬計算方法,包括:
29、接收計算指令,所述計算指令包括高精度計算、以及用于高精度計算的兩個原始數(shù)值;
30、在確定本地不支持所述高精度計算、且所述原始數(shù)值為高精度數(shù)值的情況下,將所述高精度數(shù)值轉(zhuǎn)換為兩個低精度數(shù)值,并將所述高精度計算拆分為至少兩個計算項,每個計算項由兩個低精度數(shù)值參與實現(xiàn);
31、對每個計算項進行計算,得到每個計算項的近似值和誤差值;
32、基于每個計算項的近似值和誤差值,確定模擬所述高精度計算的計算結(jié)果。
33、本發(fā)明還提供一種電子設(shè)備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,所述處理器執(zhí)行所述程序時實現(xiàn)如上述任一種所述模擬計算方法。
34、本發(fā)明還提供一種非暫態(tài)計算機可讀存儲介質(zhì),其上存儲有計算機程序,該計算機程序被處理器執(zhí)行時實現(xiàn)如上述任一種所述模擬計算方法。
35、本發(fā)明還提供一種計算機程序產(chǎn)品,包括計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)如上述任一種所述模擬計算方法。
36、本發(fā)明提供的模擬計算方法、設(shè)備及存儲介質(zhì),可以將高精度數(shù)值轉(zhuǎn)換為兩個低精度數(shù)值,由此通過基于低精度數(shù)值的計算,模擬高精度計算。并且,在此過程中,計算每個計算項的近似值和誤差值,以近似值和誤差值模擬高精度計算的計算結(jié)果,進一步提高模擬計算的計算精度,進而在不增加硬件成本的前提下通過模擬計算的方式得到更高精度的計算結(jié)果,有效擴展了人工智能芯片所支持的精度范圍。
1.一種模擬計算方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的模擬計算方法,其特征在于,所述將所述高精度數(shù)值轉(zhuǎn)換為兩個低精度數(shù)值,包括:
3.根據(jù)權(quán)利要求2所述的模擬計算方法,其特征在于,在所述高精度計算為兩個高精度數(shù)值的加法的情況下,所述將所述高精度計算拆分為至少兩個計算項,包括:
4.根據(jù)權(quán)利要求2所述的模擬計算方法,其特征在于,在所述高精度計算為兩個高精度數(shù)值的乘法的情況下,所述將所述高精度計算拆分為至少兩個計算項,包括:
5.根據(jù)權(quán)利要求2所述的模擬計算方法,其特征在于,在所述高精度計算為兩個高精度數(shù)值的除法的情況下,所述將所述高精度計算拆分為至少兩個計算項,包括:
6.根據(jù)權(quán)利要求1至5中任一項所述的模擬計算方法,其特征在于,在所述計算項包括加法的情況下,所述對每個計算項進行計算,得到每個計算項的近似值和誤差值,包括:
7.根據(jù)權(quán)利要求1至5中任一項所述的模擬計算方法,其特征在于,在所述計算項包括乘法的情況下,所述對每個計算項進行計算,得到每個計算項的近似值和誤差值,包括:
8.根據(jù)權(quán)利要求1至5中任一項所述的模擬計算方法,其特征在于,還包括:
9.一種模擬計算方法,其特征在于,包括:
10.一種電子設(shè)備,包括存儲器、處理器及存儲在所述存儲器上并可在所述處理器上運行的計算機程序,其特征在于,所述處理器執(zhí)行所述程序時實現(xiàn)如權(quán)利要求1至9任一項所述模擬計算方法。
11.一種非暫態(tài)計算機可讀存儲介質(zhì),其上存儲有計算機程序,其特征在于,所述計算機程序被處理器執(zhí)行時實現(xiàn)如權(quán)利要求1至9任一項所述模擬計算方法。