本發明專利技術公開了一種基于全局索引表的快速特征采集方法,該方法包括如下步驟:剖析內存使用,確定可用于緩存分配的最大GPU內存量;在離線狀態下,按出度數對頂點進行預排序。并在運行時選擇高出度的頂點來填充GPU緩存;確定mini
【技術實現步驟摘要】
一種基于全局索引表的快速特征采集方法
[0001]本專利技術屬于機器學習中神經網絡算法應用領域,尤其涉及一種基于全局索引表的快速特征采集方法。
技術介紹
[0002]圖神經網絡(GNN)是針對圖這一數據結構的深度學習模型,它在多項基于圖的機器學習任務中表現出色,并且具有較高的可解釋性,近年來已成為一種廣泛應用的圖表示學習方法。GNN在廣義上是指以圖結構為輸入的所有神經網絡,其核心思想是學習一種映射,將圖結構中的節點及其鄰居節點的特征映射為該節點的低維隱特征表示。為了在GPU內存容量有限的場景下實現大規模圖神經網絡訓練,基于采樣的圖神經網絡訓練被提出。圖神經網絡采樣流程中的每一次迭代過程主要分為三個階段,即采樣、數據加載和GPU計算。
[0003]快速特征采集是指將緩存在GPU顯存上的節點特征數據進行快速查找的過程(節點特征數據是圖結構中的節點所對應的特征數據,圖結構中每個節點都有其對應的特征數據),通過快速查找訓練所需的節點特征數據來提高性能。圖神經網絡采樣流程中的快速特征采集是數據加載過程能否快速進行的關鍵。
[0004]目前在學術界對于現有的圖神經網絡系統采用的訓練算法有兩大陣營,即全批訓練和小批訓練。全批訓練的最主要代表有北京大學Ma等人提出的NeuGraph和斯坦福大學Jia等人提出的ROC。小批訓練的最主要代表有IBM研究所Chen等人提出的FastGCN和南加州大學zeng等人提出的GraphSAINT。然而,對于像Facebook友誼圖這樣的非常大的圖形,使用全批訓練對GPU內存容量的要求將十分的高。但是GPU的內存容量增長卻比較緩慢,難以滿足大圖在全批訓練時對GPU內存容量的需求。因此小批量訓練是如今對大圖訓練的一個非常重要的方法,小批量訓練又稱為基于采樣的圖神經網絡訓練。
[0005]在特征采集的過程中,當前這些方案基本采用了順序查找和建立哈希表進行查找等技術。所述的順序查找是按頂點數搜索特征,需要遍歷所有緩存在GPU顯存上的數據,因此順序查找非常耗時。而所述的建立哈希表進行查找是根據關鍵碼值進行訪問,也就是通過把關鍵碼值映射到表中一個位置來進行訪問,但是哈希表是基于數組的,數組創建后難以擴展,當數組被填滿后,性能會受到很大的影響。
[0006]他們的共同特點都是在GPU緩存中通過分配連續的內存塊用以存儲特征數據,并根據在GPU緩存中所創建的順序表或者哈希表對特征數據進行查找,加快特征查找過程中所需特征數據的回復速度。所述的存儲特征數據是一個將頂點的特征數據組織成幾個大的[N,Ki]矩陣(其中N表示緩存的頂點數目,Ki是第i個特征名稱字段下的特征維度),分配到GPU緩存中連續內存塊的過程。它提供的信息能夠指導編譯器或者程序員去利用空閑的GPU緩存,通過提高特征數據的查找速度,從而實現圖神經網絡訓練中更加高效的特征采集。
[0007]但是當前的圖神經網絡中的特征采集方案均無法帶來快速的特征數據采集的效果,從而導致GPU處于等待的時間過長。其原因在于使用順序查找特征數據時,需要遍歷所有緩存在GPU上的特征數據,直到所需特征數據被采集,查找操作才算結束。使用哈希表查
找特征數據時,當創建的數組被完全填滿時,特征查找的性能將受到很大的影響。
技術實現思路
[0008]本專利技術的目的在于提供一種基于全局索引表的快速特征采集方法,旨在解決目前圖神經網絡中的特征采集機制在使用順序查找特征數據時,需要遍歷所有緩存在GPU上的特征數據,直到所需特征數據被采集,查找操作才算結束。使用哈希表查找特征數據時,當創建的數組被完全填滿時,特征查找的性能將受到很大的影響。
[0009]本專利技術是這樣實現的,一種基于全局索引表的快速特征采集方法包括如下步驟:步驟一、剖析內存使用,確定可用于緩存分配的最大GPU內存量;步驟二、在離線狀態下,按出度數對頂點進行預排序。并在運行時選擇高出度的頂點來填充GPU緩存;步驟三、確定mini
?
batch輸入的頂點數;步驟四、確定全局索引表中局部頂點的位置;步驟五、從GPU緩存數據中獲取輸入特征;步驟六、當前批次特征采集結束。
[0010]進一步,所述的步驟一通過剖析第一個mini
?
batch訓練之后,在訓練期間檢查空閑GPU內存的大小,來確定可用于緩存分配的最大GPU內存量。
[0011]進一步,步驟二所述的在離線狀態下,按出度數對頂點進行預排序。并在運行時選擇高出度的頂點來填充GPU緩存:步驟一、依據neighbor sampling算法的獨特訪問模式,頂點的出度程度表示了它在整個epoch中被選擇的概率,且頂點的出度越高,它就越有可能成為其他頂點的近鄰。因此,在離線狀態下,按出度數對頂點進行預排序;步驟二、根據在離線狀態下按出度數對頂點進行預排序步驟一中已經得到頂點出度數的排序結果,然后在運行時選擇高出度數的頂點來填充GPU緩存。
[0012]進一步,所述的步驟三通過從CPU加載到GPU的mini
?
batch數據,確定其中輸入的頂點數目。
[0013]進一步,步驟四所述的確定全局索引表中局部頂點的位置:步驟一、根據全局索引表中key值對應的是全局頂點編號,通過頂點的編號找到該頂點在key值中所對應的位置;步驟二、根據全局索引表中value值對應的是頂點特征在緩存數據中的位置,通過value值確定頂點的特征在緩存數據中的具體位置。
[0014]進一步,所述的步驟五通過從GPU緩存數據中獲取輸入特征,用以進行GPU計算操作;進一步,所述的步驟六通過基于全局索引表的操作,用以快速進行特征數據采集過程。
[0015]本專利技術的有益效果如下:(1)本專利技術從特征采集的源頭上避免了順序查找耗時長以及哈希查找性能受限的問題,利用全局索引表中的key值和value值達到快速查找特征數據,進而降低了特征采集過程中的時間消耗,提高了GPU計算資源的有效利用率;
(2)本專利技術通過創建全局索引表的方式,用以快速查找特征數據,相對于當前方案更加符合GNN訓練過程中快速采集特征數據的體系結構特征,不僅能夠有效地加速特征采集的執行過程,更能提高系統的整體運行效能;(3)本專利技術可以面向不同的圖神經網絡訓練過程中的特征查找,創建全局索引表用來快速查找頂點特征數據,適用于多種目標平臺,具有通用性。
附圖說明
[0016]圖1是本專利技術實施例提供的基于全局索引表的快速特征采集方法的流程圖。
[0017]圖2是本專利技術實施例提供的基于采樣的GNN模型訓練流程(其中數據加載包括
②
-
③
)。
[0018]圖3是本專利技術實施例提供的使用全局索引表查找特征數據的過程。
[0019]圖4是本專利技術實施例提供的在GPU緩存中使用全局索引表進行快速的特征數據查找。
具體實施方式
[0020]為了使本專利技術的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本專利技術進行進一步詳細說明。應當理解,此處所描述的具體實施例本文檔來自技高網...
【技術保護點】
【技術特征摘要】
1.一種基于全局索引表的快速特征采集方法,其特征在于,所述的基于全局索引表的快速特征采集方法包括如下步驟:步驟一、剖析內存使用,確定可用于緩存分配的最大GPU內存量;步驟二、在離線狀態下,按出度數對頂點進行預排序。并在運行時選擇高出度的頂點來填充GPU緩存;步驟三、確定mini
?
batch輸入的頂點數;步驟四、確定全局索引表中局部頂點的位置;步驟五、從GPU緩存數據中獲取輸入特征;步驟六、當前批次特征采集結束;如權利要求1所述的基于全局索引表的快速特征采集方法,其特征在于,所述的步驟一通過剖析第一個mini
?
batch訓練之后,在訓練期間檢查空閑GPU內存的大小,來確定可用于緩存分配的最大GPU內存量;如權利要求1所述的基于全局索引表的快速特征采集方法,其特征在于,步驟二所述的在離線狀態下,按出度數對頂點進行預排序。并在運行時選擇高出度的頂點來填充GPU緩存:步驟一、依據neighbor sampling算法的獨特訪問模式,頂點的出度程度表示了它在整個epoch中被選擇的概率,且頂點的出度越高,它就越有可能成為其他頂點...
【專利技術屬性】
技術研發人員:王耀彬,申超,唐蘋蘋,劉歡,楊梁,從明,陳俊仕,安虹,
申請(專利權)人:西南科技大學,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。