本說明書實施例涉及數(shù)據(jù)處理,特別涉及并行的gpu異步流管理方法。
背景技術:
1、高速數(shù)字信號在解調前的采樣數(shù)據(jù)可以達到幾個gbyte到上百gbyte,采用gpu完成數(shù)據(jù)解調,需要將數(shù)據(jù)按照采樣順序從主機內存依次拷貝到gpu共享緩存的指定輸入位置,然后執(zhí)行gpu核函數(shù)將結果存儲到gpu共享緩存的指定輸出位置,最后從gpu共享緩存的指定輸出位置拷貝結果到主機內存,完成整個解調過程。通常情況下會將采樣數(shù)據(jù)按照一定大小進行分片,每片固定大小(如10mbyte),主程序調度gpu按照接收的先后順序處理每一片數(shù)據(jù),由于gpu本身是一個并行處理設備,發(fā)起多個過程同時處理時,無法確保先調度執(zhí)行的過程一定先結束,因此為了保證處理過程遵循數(shù)據(jù)接收的時序,必須在上一過程處理完成后,才能開始下一個過程,這就導致只能串行的調度gpu過程。gpu工作原理下,輸入數(shù)據(jù)拷貝、核函數(shù)執(zhí)行、輸出數(shù)據(jù)拷貝幾個步驟是互不干擾且可同步并行執(zhí)行的,如果采用上述過程,此3個步驟同樣只能串行處理,嚴重浪費gpu資源。gpu申請共享內存,也會有很高的時間代價,特別是在首次申請時,其占用時間可以達到十幾毫秒到幾十毫秒,如果每次調度都需要執(zhí)行一次共享內存申請和釋放操作,同樣嚴重影響gpu性能。由此,亟需一種更好的方案。
技術實現(xiàn)思路
1、有鑒于此,本說明書實施例提供了并行的gpu異步流管理方法。本說明書一個或者多個實施例同時涉及并行的gpu異步流管理裝置,一種計算設備,一種計算機可讀存儲介質以及一種計算機程序,以解決現(xiàn)有技術中存在的技術缺陷。
2、根據(jù)本說明書實施例的第一方面,提供了一種并行的gpu異步流管理方法,包括:
3、獲取采樣數(shù)據(jù),確定空閑流數(shù);
4、基于采樣數(shù)據(jù)和空閑流數(shù)發(fā)布gpu任務調度,確定調度結果;
5、基于調度結果更新空閑流數(shù),確定更新空閑流數(shù);
6、基于更新空閑流數(shù)進行流同步,確定同步結果。
7、在一種可能的實現(xiàn)方式中,基于采樣數(shù)據(jù)和空閑流數(shù)發(fā)布gpu任務調度,確定調度結果,包括:
8、在空閑流數(shù)不為0的情況下,確定空閑流偏移位置;
9、基于空閑流偏移位置進行gpu任務調度,確定調度結果。
10、在一種可能的實現(xiàn)方式中,基于空閑流偏移位置進行gpu任務調度,確定調度結果,包括:
11、基于空閑流偏移位置確定第一目標cuda流;
12、基于第一目標cuda流確定目標輸入塊和目標輸出塊;
13、基于目標輸入塊和目標輸出塊進行gpu任務調度,確定調度結果。
14、在一種可能的實現(xiàn)方式中,基于調度結果更新空閑流數(shù),確定更新空閑流數(shù),包括:
15、在調度結果為已完成的情況下,將空閑流數(shù)減去1,確定更新空閑流數(shù);以及更新空閑流偏移位置。
16、在一種可能的實現(xiàn)方式中,更新空閑流偏移位置,包括:
17、確定第一目標cuda流的第一順序信息;
18、若第一順序信息為最后一位cuda流,則將空閑流偏移位置指向第一位cuda流;
19、若第一順序信息不為最后一位cuda流,則將空閑流偏移位置指向下一位cuda流。
20、在一種可能的實現(xiàn)方式中,基于更新空閑流數(shù)進行流同步,確定同步結果,包括:
21、確定流數(shù)閾值,基于更新空閑流數(shù)和流數(shù)閾值確定任務狀態(tài);
22、基于任務狀態(tài)和工作流偏移位置確定第二目標cuda流;
23、基于第二目標cuda流進行流同步,確定同步結果。
24、在一種可能的實現(xiàn)方式中,在基于更新空閑流數(shù)進行流同步,確定同步結果之后,還包括:
25、將更新空閑流數(shù)加1,并確定第二目標cuda流的第二順序信息;
26、若第二順序信息為最后一位cuda流,則將工作流偏移位置指向第一位cuda流;
27、若第二順序信息不為最后一位cuda流,則將工作流偏移位置指向下一位cuda流。
28、根據(jù)本說明書實施例的第二方面,提供了一種并行的gpu異步流管理裝置,包括:
29、數(shù)據(jù)獲取模塊,被配置為獲取采樣數(shù)據(jù),確定空閑流數(shù);
30、調度結果模塊,被配置為基于采樣數(shù)據(jù)和空閑流數(shù)發(fā)布gpu任務調度,確定調度結果;
31、數(shù)據(jù)更新模塊,被配置為基于調度結果更新空閑流數(shù),確定更新空閑流數(shù);
32、數(shù)據(jù)同步模塊,被配置為基于更新空閑流數(shù)進行流同步,確定同步結果。
33、根據(jù)本說明書實施例的第三方面,提供了一種計算設備,包括:
34、存儲器和處理器;
35、所述存儲器用于存儲計算機可執(zhí)行指令,所述處理器用于執(zhí)行所述計算機可執(zhí)行指令,該計算機可執(zhí)行指令被處理器執(zhí)行時實現(xiàn)上述并行的gpu異步流管理方法的步驟。
36、根據(jù)本說明書實施例的第四方面,提供了一種計算機可讀存儲介質,其存儲有計算機可執(zhí)行指令,該指令被處理器執(zhí)行時實現(xiàn)上述并行的gpu異步流管理方法的步驟。
37、根據(jù)本說明書實施例的第五方面,提供了一種計算機程序,其中,當所述計算機程序在計算機中執(zhí)行時,令計算機執(zhí)行上述并行的gpu異步流管理方法的步驟。
38、本說明書實施例提供并行的gpu異步流管理方法及裝置,其中并行的gpu異步流管理方法包括:獲取采樣數(shù)據(jù),確定空閑流數(shù);基于采樣數(shù)據(jù)和空閑流數(shù)發(fā)布gpu任務調度,確定調度結果;基于調度結果更新空閑流數(shù),確定更新空閑流數(shù);基于更新空閑流數(shù)進行流同步,確定同步結果。通過獲取采樣數(shù)據(jù),確定空閑流數(shù);基于采樣數(shù)據(jù)和空閑流數(shù)發(fā)布gpu任務調度,確定調度結果;基于調度結果更新空閑流數(shù),確定更新空閑流數(shù);基于更新空閑流數(shù)進行流同步,確定同步結果,可同時發(fā)起多個cuda流到gpu同步執(zhí)行,多任務并形執(zhí)行,充分利用gpu資源,提高了效率。
1.一種并行的gpu異步流管理方法,其特征在于,包括:
2.根據(jù)權利要求1所述的方法,其特征在于,所述基于所述采樣數(shù)據(jù)和所述空閑流數(shù)發(fā)布gpu任務調度,確定調度結果,包括:
3.根據(jù)權利要求2所述的方法,其特征在于,所述基于所述空閑流偏移位置進行gpu任務調度,確定調度結果,包括:
4.根據(jù)權利要求3所述的方法,其特征在于,所述基于所述調度結果更新所述空閑流數(shù),確定更新空閑流數(shù),包括:
5.根據(jù)權利要求4所述的方法,其特征在于,所述更新所述空閑流偏移位置,包括:
6.根據(jù)權利要求1所述的方法,其特征在于,所述基于所述更新空閑流數(shù)進行流同步,確定同步結果,包括:
7.根據(jù)權利要求6所述的方法,其特征在于,在所述基于所述更新空閑流數(shù)進行流同步,確定同步結果之后,還包括:
8.一種并行的gpu異步流管理裝置,其特征在于,包括:
9.一種計算設備,其特征在于,包括:
10.一種計算機可讀存儲介質,其存儲有計算機可執(zhí)行指令,該計算機可執(zhí)行指令被處理器執(zhí)行時實現(xiàn)權利要求1至7任意一項所述并行的gpu異步流管理方法的步驟。