本申請(qǐng)涉及計(jì)算機(jī)領(lǐng)域,具體涉及一種gpgpu與主機(jī)的數(shù)據(jù)傳輸方法、設(shè)備及介質(zhì)。
背景技術(shù):
1、隨著高性能計(jì)算的發(fā)展,通用計(jì)算圖形處理單元(general-purpose?graphicsprocessing?unit,gpgpu)的性能不斷提升。現(xiàn)階段主流的gpgpu在核心的數(shù)量和時(shí)鐘速度、內(nèi)存的容量和帶寬等硬件參數(shù)方面已經(jīng)達(dá)到了較高的水平,比如,部分型號(hào)的gpgpu的內(nèi)存帶寬已經(jīng)達(dá)到了4.8tb每秒。
2、由于pcie(peripheral?component?interface?express)接口在兼容性、尺寸、成本等方面的優(yōu)勢,目前pcie接口仍然是使用廣泛的gpgpu接口,然而pcie的傳輸帶寬遠(yuǎn)低于gpgpu內(nèi)部帶寬,以pcie5.0接口為例,其傳輸帶寬只有128gb每秒,pcie4.0接口的傳輸帶寬則只有64gb每秒,限制了高性能gpgpu計(jì)算能力的發(fā)揮。
技術(shù)實(shí)現(xiàn)思路
1、為了解決上述問題,本申請(qǐng)?zhí)岢隽艘环Ngpgpu與主機(jī)的數(shù)據(jù)傳輸方法,應(yīng)用在數(shù)據(jù)傳輸系統(tǒng)中,所述數(shù)據(jù)傳輸系統(tǒng)包括主機(jī)側(cè)、設(shè)備側(cè),所述主機(jī)側(cè)中包括cpu模塊、多個(gè)pcie-h控制器,所述設(shè)備側(cè)包括gpgpu模塊,所述gpgpu模塊中包括dma-ctrl控制器、多個(gè)dma控制器、多個(gè)pcie-d控制器;其中,所述pcie-h控制器、所述dma控制器、所述pcie-d控制器相對(duì)應(yīng),所述dma-ctrl控制器用于控制所述dma控制器、所述pcie-d控制器;
2、所述方法包括:
3、通過所述主機(jī)側(cè)的運(yùn)行程序,獲取本次dma傳輸對(duì)應(yīng)的第一傳輸屬性,其中,所述第一傳輸屬性包括dma傳輸?shù)耐ǖ罃?shù)量、源地址、目的地址、數(shù)據(jù)長度;
4、若所述通道數(shù)量為表示自動(dòng)設(shè)置的指定數(shù)量,則根據(jù)所述第一傳輸屬性的數(shù)據(jù)長度,以及本次dma傳輸?shù)娜蝿?wù)緊急程度,確定本次所使用的實(shí)際通道數(shù)量;
5、通過所述dma-ctrl控制器,基于所述實(shí)際通道數(shù)量選取對(duì)應(yīng)的通道,并根據(jù)所述第一傳輸屬性,得到各通道對(duì)應(yīng)的第二傳輸屬性,其中,所述第二傳輸屬性包括源地址、目的地址、數(shù)據(jù)長度;
6、通過所述dma-ctrl控制器控制所述dma控制器,基于所述第二傳輸屬性執(zhí)行本次dma傳輸,并通過所述dma控制器,將傳輸結(jié)果反饋給所述dma-ctrl控制器。
7、在一個(gè)示例中,所述主機(jī)側(cè)上還設(shè)置有內(nèi)存模塊,所述設(shè)備側(cè)上還設(shè)置有顯存模塊;
8、通過所述主機(jī)側(cè)的運(yùn)行程序,獲取本次dma傳輸對(duì)應(yīng)的第一傳輸屬性,具體包括:
9、通過所述主機(jī)側(cè)的運(yùn)行程序,確定本次dma傳輸中的數(shù)據(jù)發(fā)送方和數(shù)據(jù)接收方;
10、若所述數(shù)據(jù)發(fā)送方為所述主機(jī)側(cè),所述數(shù)據(jù)接收方為所述設(shè)備側(cè),則所述第一傳輸屬性中的源地址、目的地址分別基于所述內(nèi)存模塊、所述顯存模塊獲?。?/p>
11、若所述數(shù)據(jù)發(fā)送方為所述設(shè)備側(cè),所述數(shù)據(jù)接收方為所述主機(jī)側(cè),則所述第一傳輸屬性中的源地址、目的地址分別基于所述顯存模塊、所述內(nèi)存模塊獲取。
12、在一個(gè)示例中,每個(gè)所述pcie-d控制器、每個(gè)所述dma控制器均為多通道;所述dma控制器的每個(gè)通道對(duì)應(yīng)于所述pcie-d控制器的每個(gè)通道;所述dma控制器的每個(gè)通道、所述pcie-d控制器的每個(gè)通道能夠被單獨(dú)控制。
13、在一個(gè)示例中,根據(jù)所述第一傳輸屬性的數(shù)據(jù)長度,以及本次dma傳輸?shù)娜蝿?wù)緊急程度,確定本次所使用的實(shí)際通道數(shù)量,具體包括:
14、獲取所述dma控制器的每個(gè)通道的單次傳輸?shù)淖畲髷?shù)據(jù)長度;
15、基于所述最大數(shù)據(jù)長度,以及所述第一傳輸屬性的數(shù)據(jù)長度,確定本次所使用的實(shí)際通道數(shù)量;
16、根據(jù)本次dma傳輸?shù)娜蝿?wù)緊急程度,對(duì)所述實(shí)際通道數(shù)量進(jìn)行修正。
17、在一個(gè)示例中,基于所述最大數(shù)據(jù)長度,以及所述第一傳輸屬性的數(shù)據(jù)長度,確定本次所使用的實(shí)際通道數(shù)量,具體包括:
18、將所述第一傳輸屬性的數(shù)據(jù)長度與所述最大數(shù)據(jù)長度相除,并根據(jù)相除的結(jié)果加1,得到本次所使用的實(shí)際通道數(shù)量。
19、在一個(gè)示例中,獲取本次dma傳輸對(duì)應(yīng)的第一傳輸屬性之后,所述方法還包括:
20、若所述通道數(shù)量為表示手動(dòng)設(shè)置的設(shè)置數(shù)量,則確定所述設(shè)置數(shù)量是否超過所述pcie-d控制器、所述dma控制器對(duì)應(yīng)的通道數(shù)量上限;
21、若未超過,則將所述設(shè)置數(shù)量作為本次所使用的實(shí)際通道數(shù)量。
22、在一個(gè)示例中,通過所述dma控制器,將傳輸結(jié)果反饋給所述dma-ctrl控制器,具體包括:
23、通過所述dma控制器,每當(dāng)自身對(duì)應(yīng)的通道完成dma傳輸時(shí),將對(duì)應(yīng)的傳輸結(jié)果反饋給所述dma-ctrl控制器;
24、通過所述dma控制器,當(dāng)自身對(duì)應(yīng)的所有通道均完成dma傳輸時(shí),通過自身對(duì)應(yīng)的pcie-d控制器向主機(jī)側(cè)對(duì)應(yīng)的pcie-h控制器發(fā)送傳輸完成中斷請(qǐng)求,以使pcie-h控制器通過設(shè)備驅(qū)動(dòng)程序?qū)⑺鰝鬏斖瓿芍袛嗾?qǐng)求傳遞給所述運(yùn)行程序。
25、在一個(gè)示例中,所述pcie-h控制器、所述dma控制器、所述pcie-d控制器的數(shù)量均為三個(gè);每個(gè)所述pcie-d控制器、每個(gè)所述dma控制器的通道數(shù)量均為十六個(gè)。
26、另一方面,本申請(qǐng)還提出了一種gpgpu與主機(jī)的數(shù)據(jù)傳輸設(shè)備,包括:
27、至少一個(gè)處理器;以及,
28、與所述至少一個(gè)處理器通信連接的存儲(chǔ)器;其中,
29、所述存儲(chǔ)器存儲(chǔ)有可被所述至少一個(gè)處理器執(zhí)行的指令,所述指令被所述至少一個(gè)處理器執(zhí)行,以使所述至少一個(gè)處理器能夠執(zhí)行如:上述任一示例所述的gpgpu與主機(jī)的數(shù)據(jù)傳輸方法。
30、另一方面,本申請(qǐng)還提出了一種非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì),存儲(chǔ)有計(jì)算機(jī)可執(zhí)行指令,所述計(jì)算機(jī)可執(zhí)行指令設(shè)置為:上述任一示例所述的gpgpu與主機(jī)的數(shù)據(jù)傳輸方法。
31、通過本申請(qǐng)?zhí)岢鰃pgpu與主機(jī)的數(shù)據(jù)傳輸方法能夠帶來如下有益效果:
32、通過在gpgpu中增加dma-ctrl控制器,控制多個(gè)dma控制器和多個(gè)pcie-d控制器同時(shí)進(jìn)行數(shù)據(jù)傳輸,可以有效提高gpgpu與主機(jī)之間數(shù)據(jù)的傳輸速度,減少任務(wù)整體執(zhí)行時(shí)間,改善pcie接口對(duì)整體計(jì)算性能的影響。
1.一種gpgpu與主機(jī)的數(shù)據(jù)傳輸方法,其特征在于,應(yīng)用在數(shù)據(jù)傳輸系統(tǒng)中,所述數(shù)據(jù)傳輸系統(tǒng)包括主機(jī)側(cè)、設(shè)備側(cè),所述主機(jī)側(cè)中包括cpu模塊、多個(gè)pcie-h控制器,所述設(shè)備側(cè)包括gpgpu模塊,所述gpgpu模塊中包括dma-ctrl控制器、多個(gè)dma控制器、多個(gè)pcie-d控制器;其中,所述pcie-h控制器、所述dma控制器、所述pcie-d控制器相對(duì)應(yīng),所述dma-ctrl控制器用于控制所述dma控制器、所述pcie-d控制器;
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述主機(jī)側(cè)上還設(shè)置有內(nèi)存模塊,所述設(shè)備側(cè)上還設(shè)置有顯存模塊;
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,每個(gè)所述pcie-d控制器、每個(gè)所述dma控制器均為多通道;所述dma控制器的每個(gè)通道對(duì)應(yīng)于所述pcie-d控制器的每個(gè)通道;所述dma控制器的每個(gè)通道、所述pcie-d控制器的每個(gè)通道能夠被單獨(dú)控制。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,根據(jù)所述第一傳輸屬性的數(shù)據(jù)長度,以及本次dma傳輸?shù)娜蝿?wù)緊急程度,確定本次所使用的實(shí)際通道數(shù)量,具體包括:
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,基于所述最大數(shù)據(jù)長度,以及所述第一傳輸屬性的數(shù)據(jù)長度,確定本次所使用的實(shí)際通道數(shù)量,具體包括:
6.根據(jù)權(quán)利要求3所述的方法,其特征在于,獲取本次dma傳輸對(duì)應(yīng)的第一傳輸屬性之后,所述方法還包括:
7.根據(jù)權(quán)利要求3所述的方法,其特征在于,通過所述dma控制器,將傳輸結(jié)果反饋給所述dma-ctrl控制器,具體包括:
8.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述pcie-h控制器、所述dma控制器、所述pcie-d控制器的數(shù)量均為三個(gè);每個(gè)所述pcie-d控制器、每個(gè)所述dma控制器的通道數(shù)量均為十六個(gè)。
9.一種gpgpu與主機(jī)的數(shù)據(jù)傳輸設(shè)備,其特征在于,包括:
10.一種非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì),存儲(chǔ)有計(jì)算機(jī)可執(zhí)行指令,其特征在于,所述計(jì)算機(jī)可執(zhí)行指令設(shè)置為:權(quán)利要求1~8中任一項(xiàng)權(quán)利要求所述的gpgpu與主機(jī)的數(shù)據(jù)傳輸方法。