System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數(shù)名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現(xiàn)步驟摘要】
本申請涉及gpgpu內存分配領域,尤其涉及一種gpgpu的全局內存分配方法、設備及介質。
技術介紹
1、在當今的計算
,計算任務正朝著大規(guī)模、高復雜度的方向迅速發(fā)展。從深度學習中的神經網(wǎng)絡訓練,到科學研究中的復雜模擬,再到大數(shù)據(jù)分析中的海量數(shù)據(jù)處理,這些應用場景都對計算性能提出了嚴苛的要求。為了滿足這種高性能計算的需求,將主機(通常以?cpu?為核心)與通用圖形處理器(gpgpu)設備協(xié)同工作的異構計算模式得到了廣泛應用。
2、在主機與?gpgpu?設備協(xié)同工作的過程中,數(shù)據(jù)傳輸調度的重要性愈發(fā)凸顯。當前,二者之間的數(shù)據(jù)傳輸面臨諸多挑戰(zhàn)。首先,主機和設備之間的數(shù)據(jù)傳輸是一個長延時操作,目前的數(shù)據(jù)傳輸架構大多采用先進行數(shù)據(jù)傳輸,待傳輸完成后,再進行計算的模式,這可能會影響任務的實時性,對于某些對實時性要求較高的任務不友好。其次,對于某些數(shù)據(jù)量較大的任務,傳輸任務所需的全部數(shù)據(jù)可能會占用較大的設備內存空間,從而造成內存空間的浪費,進而影響到其他任務的執(zhí)行。
技術實現(xiàn)思路
1、本申請實施例提供了一種gpgpu的全局內存分配方法、設備及介質,用于解決如下技術問題:在現(xiàn)有的主機與?gpgpu?設備數(shù)據(jù)傳輸協(xié)同工作過程中,容易影響任務的實時性,可能會占用較大的設備內存空間,從而造成內存空間的浪費,進而影響到其他任務的執(zhí)行。
2、本申請實施例采用下述技術方案:
3、一方面,本申請實施例提供了一種gpgpu的全局內存分配方法,包括:根據(jù)gpgpu運算資源的
4、本申請實施例通過將計算任務所需數(shù)據(jù)分成若干數(shù)據(jù)塊,每次傳輸并計算一個數(shù)據(jù)塊的數(shù)據(jù),并且使得設備端的計算任務與主機與設備端的數(shù)據(jù)傳輸任務并行執(zhí)行,從而降低任務執(zhí)行過程中對設備內存的占用,并提高任務執(zhí)行效率。
5、在一種可行的實施方式中,根據(jù)gpgpu運算資源的大小,對輸入任務所需的每個輸入數(shù)據(jù)進行數(shù)據(jù)塊劃分處理,得到主機端的輸入數(shù)據(jù)塊,具體包括:通過所述主機端,將所述輸入任務中的每個輸入數(shù)據(jù)劃分成相同數(shù)據(jù)元素下的數(shù)據(jù)塊,并對每個所述數(shù)據(jù)塊依次進行編號處理,得到所述主機端的輸入數(shù)據(jù)塊;其中,所述數(shù)據(jù)塊的數(shù)量大小為所述輸入任務分配的可編程多處理器數(shù)量與每個可編程多處理器中標量核心數(shù)量的乘積。
6、在一種可行的實施方式中,基于所述輸入數(shù)據(jù)塊的數(shù)量大小,確定出設備端中內存數(shù)據(jù)塊的數(shù)量大小,具體包括:根據(jù)所述輸入數(shù)據(jù)塊,對所述設備端的內存模塊進行基于主機端輸入數(shù)據(jù)塊以及輸出數(shù)據(jù)塊對應存儲空間的劃分處理,得到統(tǒng)一存儲空間;其中,所述統(tǒng)一存儲空間中數(shù)據(jù)塊的數(shù)量大小為所述輸入數(shù)據(jù)塊的數(shù)量大小的兩倍關系;基于所述輸入數(shù)據(jù)塊的數(shù)量大小,對所述統(tǒng)一存儲空間進行均分處理,得到接收數(shù)據(jù)內存塊以及存儲運算結果內存塊;其中,所述接收數(shù)據(jù)內存塊與所述存儲運算結果內存塊的存儲空間為相同大?。粚⑺鼋邮諗?shù)據(jù)內存塊以及所述存儲運算結果內存塊進行數(shù)據(jù)塊統(tǒng)合,得到所述內存數(shù)據(jù)塊;其中,每塊所述內存數(shù)據(jù)塊均可記錄存儲空間的首地址以及內存大小。
7、在一種可行的實施方式中,根據(jù)所述輸入數(shù)據(jù)塊以及所述內存數(shù)據(jù)塊,對第一組輸入數(shù)據(jù)進行所述設備端的運算處理,得到所述第一組輸入數(shù)據(jù)的運算結果,具體包括:通過所述主機端的輸入數(shù)據(jù)塊,并基于所述設備端的存儲地址,將所述輸入任務中的所述第一組輸入數(shù)據(jù)傳輸?shù)剿鲈O備端的所述內存數(shù)據(jù)的第一接收數(shù)據(jù)內存塊中;基于所述第一接收數(shù)據(jù)內存塊,對所述第一組輸入數(shù)據(jù)進行數(shù)據(jù)接收完成標志位置標記處理;當所述設備端檢測到標記后的數(shù)據(jù)接收完成標志位置,對所述第一組輸入數(shù)據(jù)進行運算處理,并將運算結果存儲到所述內存數(shù)據(jù)塊的第一存儲運算結果內存塊中,得到第一存儲運算結果;基于所述第一存儲運算結果,將所述第一組輸入數(shù)據(jù)的數(shù)據(jù)接收完成標志位置消除處理,得到標志位清零狀態(tài);將所述主機端中第二組輸入數(shù)據(jù)傳輸?shù)剿鲈O備端中所述內存數(shù)據(jù)塊的第二接收數(shù)據(jù)內存塊,并持續(xù)對所述設備端中的運算完成標志位進行檢測,得到待輸入數(shù)據(jù)狀態(tài);其中,所述運算結果包括:所述第一存儲運算結果、所述標志位清零狀態(tài)以及所述待輸入數(shù)據(jù)狀態(tài)。
8、在一種可行的實施方式中,若所述設備端的運算狀態(tài)在所述主機端結束發(fā)送第二組輸入數(shù)據(jù)之前完成,則對所述設備端進行先運算完成控制,得到所述第二組輸入數(shù)據(jù)的先運算結果,具體包括:若所述第一組輸入數(shù)據(jù)處于完成運算狀態(tài)且所述第二組輸入數(shù)據(jù)處于持續(xù)數(shù)據(jù)傳輸狀態(tài),則將所述設備端中的運算完成標志位置進行標記處理;當所述主機端檢測到標記的所述運算完成標志位置時,將所述運算完成標志位置進行消除處理;并將存儲在所述內存數(shù)據(jù)塊的第一存儲運算結果讀回到所述主機端的數(shù)據(jù)輸出中,并將所述第一存儲運算結果對應內存數(shù)據(jù)塊的存儲地址定位為可使用狀態(tài);當所述第二組輸入數(shù)據(jù)處于完成數(shù)據(jù)傳輸時,將所述第二組輸入數(shù)據(jù)對應的數(shù)據(jù)接收完成標志位置進行標記處理;基于標記后的所述數(shù)據(jù)接收完成標志位置,對所述第二組輸入數(shù)據(jù)進行運算處理,并將第二存儲運算結果存儲到所述內存數(shù)據(jù)塊的第二存儲運算結果內存塊中;其中,所述第二存儲運算結果內存塊為空閑的存儲運算結果內存塊;對第二組輸入數(shù)據(jù)對應的數(shù)據(jù)接收完成標志位置進行消除處理,確定出第三輸入數(shù)據(jù)的待輸入數(shù)據(jù)狀態(tài);其中,所述先運算結果包括:所述待輸入數(shù)據(jù)狀態(tài)、數(shù)據(jù)接收完成標志位置狀態(tài)以及運算完成標志位置狀態(tài)。
9、在一種可行的實施方式中,若所述設備端的運算狀態(tài)在所述主機端結束發(fā)送第二組輸入數(shù)據(jù)之后完成,則對所述設備端進行后運算完成控制,得到所述第二組輸入數(shù)據(jù)的后運算結果,具體包括:若所述第一組輸入數(shù)據(jù)處于正在運算狀態(tài)且所述第二組輸入數(shù)據(jù)處于完成數(shù)據(jù)傳輸狀態(tài),則將所述設備端中所述第二組輸入數(shù)據(jù)的數(shù)據(jù)接收完成標志位置進行標記處理;通過所述主機端,對所述第一組輸入數(shù)據(jù)的運算完成標志位置狀態(tài)進行持續(xù)檢測處理;當所述設備端中所述第一組輸入數(shù)據(jù)的運算完成標志位置確定為標記狀態(tài)時,通過所述主機端,將所述第一組輸入數(shù)據(jù)的運算完成標志位置進行消除處理,并將存儲在第一存儲運算結果內存塊中的第一存儲運算結果讀回到所述主機端的數(shù)據(jù)輸出中;當所述設備端檢測到所述第二組輸入數(shù)據(jù)的數(shù)據(jù)接收完成標志位置為標記狀態(tài)時,對所述第二組輸入數(shù)據(jù)進行運算處理;并將所述第二組輸入數(shù)據(jù)的第二存儲運算結果存儲到所述內存數(shù)據(jù)塊的第二存儲運算結果內存塊中;本文檔來自技高網(wǎng)...
【技術保護點】
1.一種GPGPU的全局內存分配方法,其特征在于,所述方法包括:
2.根據(jù)權利要求1所述的一種GPGPU的全局內存分配方法,其特征在于,根據(jù)GPGPU運算資源的大小,對輸入任務所需的每個輸入數(shù)據(jù)進行數(shù)據(jù)塊劃分處理,得到主機端的輸入數(shù)據(jù)塊,具體包括:
3.根據(jù)權利要求1所述的一種GPGPU的全局內存分配方法,其特征在于,基于所述輸入數(shù)據(jù)塊的數(shù)量大小,確定出設備端中內存數(shù)據(jù)塊的數(shù)量大小,具體包括:
4.根據(jù)權利要求1所述的一種GPGPU的全局內存分配方法,其特征在于,根據(jù)所述輸入數(shù)據(jù)塊以及所述內存數(shù)據(jù)塊,對第一組輸入數(shù)據(jù)進行所述設備端的運算處理,得到所述第一組輸入數(shù)據(jù)的運算結果,具體包括:
5.根據(jù)權利要求1所述的一種GPGPU的全局內存分配方法,其特征在于,若所述設備端的運算狀態(tài)在所述主機端結束發(fā)送第二組輸入數(shù)據(jù)之前完成,則對所述設備端進行先運算完成控制,得到所述第二組輸入數(shù)據(jù)的先運算結果,具體包括:
6.根據(jù)權利要求1所述的一種GPGPU的全局內存分配方法,其特征在于,若所述設備端的運算狀態(tài)在所述主機端結束發(fā)送第二組輸入
7.根據(jù)權利要求1所述的一種GPGPU的全局內存分配方法,其特征在于,通過所述先運算結果以及所述后運算結果,對所述輸入任務進行執(zhí)行判斷,確定出任務執(zhí)行完成結果,具體包括:
8.根據(jù)權利要求1所述的一種GPGPU的全局內存分配方法,其特征在于,當存儲在存儲運算結果內存塊中的存儲運算結果讀回到所述主機端的數(shù)據(jù)輸出中時,將當前存儲運算結果內存塊確定為空閑狀態(tài),并將所述當前存儲運算結果內存的運算結果存儲地址進行有關下一次運算處理后的相應增加處理。
9.一種GPGPU的全局內存分配設備,其特征在于,所述設備包括:
10.一種非易失性計算機存儲介質,其特征在于,所述存儲介質為非易失性計算機可讀存儲介質,所述非易失性計算機可讀存儲介質存儲有至少一個程序,每個所述程序包括指令,所述指令當被終端執(zhí)行時,使所述終端執(zhí)行根據(jù)權利要求1-8任一項所述的一種GPGPU的全局內存分配方法。
...【技術特征摘要】
1.一種gpgpu的全局內存分配方法,其特征在于,所述方法包括:
2.根據(jù)權利要求1所述的一種gpgpu的全局內存分配方法,其特征在于,根據(jù)gpgpu運算資源的大小,對輸入任務所需的每個輸入數(shù)據(jù)進行數(shù)據(jù)塊劃分處理,得到主機端的輸入數(shù)據(jù)塊,具體包括:
3.根據(jù)權利要求1所述的一種gpgpu的全局內存分配方法,其特征在于,基于所述輸入數(shù)據(jù)塊的數(shù)量大小,確定出設備端中內存數(shù)據(jù)塊的數(shù)量大小,具體包括:
4.根據(jù)權利要求1所述的一種gpgpu的全局內存分配方法,其特征在于,根據(jù)所述輸入數(shù)據(jù)塊以及所述內存數(shù)據(jù)塊,對第一組輸入數(shù)據(jù)進行所述設備端的運算處理,得到所述第一組輸入數(shù)據(jù)的運算結果,具體包括:
5.根據(jù)權利要求1所述的一種gpgpu的全局內存分配方法,其特征在于,若所述設備端的運算狀態(tài)在所述主機端結束發(fā)送第二組輸入數(shù)據(jù)之前完成,則對所述設備端進行先運算完成控制,得到所述第二組輸入數(shù)據(jù)的先運算結果,具體包括:
6.根據(jù)權利要求1所述的一種gpgpu的全局內存分配方法,其特征在于,若所述設備端的...
【專利技術屬性】
技術研發(fā)人員:李際升,趙鑫鑫,姜凱,薛海軍,
申請(專利權)人:山東浪潮科學研究院有限公司,
類型:發(fā)明
國別省市:
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。