在我們的 先前的圖分析探索 中,我們使用 NVIDIA cuGraph 揭示了 GPU-CPU 融合的變革力量。基于這些見解,我們現(xiàn)在引入了一種革命性的新架構(gòu),它重新定義了圖處理的邊界。
圖形處理的發(fā)展
在我們?cè)缙谏孀銏D形分析的過程中,我們?cè)谑褂玫募軜?gòu)方面面臨著各種挑戰(zhàn)。這種體系結(jié)構(gòu)雖然有效,但也造成了阻礙設(shè)置和性能的障礙。
圖 1.(以前的體系結(jié)構(gòu))使用 TigerGraph、cuGraph 和 GSQL 進(jìn)行高性能圖形分析的過程
以前體系結(jié)構(gòu)的挑戰(zhàn)
對(duì)磁盤的依賴關(guān)系:我們?cè)?TigerGraph 和 cuGraph 之間使用基于磁盤的數(shù)據(jù)傳輸,這會(huì)對(duì)可擴(kuò)展性和性能造成限制。組件之間的數(shù)據(jù)傳輸依賴于臨時(shí)磁盤,從而引入延遲和潛在的性能瓶頸。
Python 依賴項(xiàng):使用 Python 運(yùn)行 cuGraph 將引入開銷和復(fù)雜性,從而影響性能,特別是在圖形處理等計(jì)算密集型任務(wù)中。
節(jié)儉層:節(jié)儉的通信會(huì)增加復(fù)雜性和開銷,從而可能影響系統(tǒng)的可靠性。
對(duì)設(shè)置和性能的影響
這些依賴關(guān)系不僅使設(shè)置過程復(fù)雜化,而且對(duì)實(shí)現(xiàn)最佳性能也提出了挑戰(zhàn)。對(duì)共享磁盤基礎(chǔ)設(shè)施的需求,加上基于 Python 的服務(wù)和 Thrift 通信,造成了一個(gè)難以有效配置和擴(kuò)展的系統(tǒng)。
在我們尋求加速圖形分析的過程中,很明顯,范式轉(zhuǎn)變是必要的。進(jìn)入下一代架構(gòu),這是一種革命性的方法,旨在克服前代架構(gòu)的局限性,開啟圖形處理的新領(lǐng)域。讓我們?cè)敿?xì)探討一下這一突破性的體系結(jié)構(gòu)。
介紹下一代架構(gòu)
在我們尋求徹底改變圖形分析的過程中,我們精心打造了代表圖形處理范式轉(zhuǎn)變的下一代架構(gòu)。該體系結(jié)構(gòu)完全構(gòu)建在 C++中,利用尖端技術(shù)實(shí)現(xiàn)了前所未有的性能和可擴(kuò)展性。
理解 TigerGraph 中的 GSQL 查詢執(zhí)行過程
在深入研究我們新體系結(jié)構(gòu)的復(fù)雜性之前,了解 GSQL 查詢傳統(tǒng)上是如何在 TigerGraph 集群中執(zhí)行的至關(guān)重要:
步驟 1:編譯
GSQL 查詢將經(jīng)編譯,然后轉(zhuǎn)換為 C++ 代碼。隨后,編譯這些代碼,并將其與專有的 TigerGraph 庫進(jìn)行鏈接,以便執(zhí)行準(zhǔn)備。
第 2 步:執(zhí)行
編譯后,將使用圖形處理引擎(GPE)在 TigerGraph 集群上執(zhí)行查詢。GPE 負(fù)責(zé)管理集群通信,并協(xié)調(diào)分布式環(huán)境中算法的執(zhí)行。
升級(jí)下一代體系結(jié)構(gòu)
在我們的下一代體系結(jié)構(gòu)中,我們對(duì)編譯和執(zhí)行階段進(jìn)行了重大升級(jí),利用 GPU 加速的力量并簡化了處理流程:
步驟 1:增強(qiáng)加速的查詢編譯
我們通過將 cuGraph CUDA 庫直接集成到 TigerGraph 中,實(shí)現(xiàn)了對(duì) GPU 加速圖形處理功能的無縫訪問。基于 cuGraph 庫,我們開發(fā)了 ZettaAccel,這是一個(gè)自定義的 C++ 庫,它公開了在 GSQL 查詢中可用作用戶定義函數(shù)(UDF)的函數(shù)。現(xiàn)在,在查詢編譯過程中,GSQL 查詢被編譯并與 TigerGraph、CUDA cuGraph 和 ZettaAccel 庫鏈接,從而解鎖其核心的加速圖處理能力。
圖 2:加速 GSQL 編譯
步驟 2:通過 GPU 資源管理優(yōu)化執(zhí)行
在執(zhí)行時(shí),我們的體系結(jié)構(gòu)使用 RAPID 生態(tài)系統(tǒng)庫動(dòng)態(tài)分配 GPU 資源,以確保可用硬件的最佳利用率。圖形數(shù)據(jù)通過 ZettaAccel 庫從 TigerGraph 高效地傳輸?shù)?GPU 內(nèi)存,其中它被無縫轉(zhuǎn)換為可供處理的圖形結(jié)構(gòu)。然后,算法直接在 GPU 上執(zhí)行,利用其并行處理能力獲得無與倫比的性能提升。最后,生成的數(shù)據(jù)被無縫地傳輸回 CPU 和 TigerGraph,以進(jìn)行進(jìn)一步的分析和集成。
圖 3。加速 GSQL 執(zhí)行
下一代架構(gòu)的優(yōu)勢
下一代架構(gòu)代表了圖形處理效率和可擴(kuò)展性的巨大飛躍:
前所未有的性能:通過充分利用 GPU 加速和精簡處理管道,我們的架構(gòu)提供了無與倫比的性能提升,從而能夠快速執(zhí)行復(fù)雜的圖形算法。
簡化的設(shè)置:通過將 cuGraph 和 ZettaAccel 集成到 TigerGraph 中,我們簡化了設(shè)置過程,消除了對(duì)復(fù)雜依賴關(guān)系的需求,并減少了配置開銷。
可擴(kuò)展性和靈活性:借助動(dòng)態(tài) GPU 資源管理和高效的數(shù)據(jù)傳輸機(jī)制,我們的架構(gòu)可以輕松擴(kuò)展,以處理大規(guī)模的圖形數(shù)據(jù)集和多樣化的處理工作負(fù)載。
利用加速的 GSQL 構(gòu)造進(jìn)行圖形處理
為了利用加速的 GSQL 構(gòu)造的力量進(jìn)行高效的圖形處理,用戶可以遵循分為三個(gè)階段的結(jié)構(gòu)化方法:流式圖形構(gòu)造、算法執(zhí)行和結(jié)果檢索。
讓我們以 pagerank 為例來看看所有三個(gè)階段:-
1.流圖構(gòu)建:
在這個(gè)階段,用戶通過指定數(shù)據(jù)處理所需的關(guān)系和累加器來定義流圖。
SELECT s FROM Start:s -(friend:f)- :t ACCUM int graph_obj=@@graph_per_server.get(server_id) udf_stream_edges(graph_obj,getvid(s),getvid(t),store_transposed); |
在這里,用戶可以建立初始的圖結(jié)構(gòu),并積累相關(guān)信息,如圖對(duì)象和自定義流功能。這個(gè)udf_stream_edges 函數(shù)能夠有效地處理邊緣流并更新圖形結(jié)構(gòu)。
2.執(zhí)行算法:
一旦構(gòu)建了流圖,用戶就可以使用 GSQL 結(jié)構(gòu)高效地執(zhí)行他們想要的算法。
V = SELECT s FROM vertex_per_server:s ACCUM udf_prank_execute(@@graph_per_server.get(s.@server_id),@@vertices_per_server.get(s.@server_id)); |
在這個(gè)階段,用戶使用加速的 GSQL 構(gòu)造來執(zhí)行像 PageRank 這樣的算法。這個(gè)udf_prank_execute函數(shù)可以有效地計(jì)算分布在服務(wù)器上的頂點(diǎn)的 PageRank 分?jǐn)?shù),從而優(yōu)化算法執(zhí)行時(shí)間。
3.檢索結(jié)果:
在執(zhí)行算法之后,用戶從圖中取回計(jì)算結(jié)果,用于進(jìn)一步分析或可視化。
V = SELECT s FROM Start:s ACCUM s.@score=udf_pagerank_score(@@graph_per_server.get(server_id),getvid(s)); |
在這里,用戶檢索在算法執(zhí)行期間計(jì)算的 PageRank 分?jǐn)?shù),并將其存儲(chǔ)為頂點(diǎn)屬性,用于后續(xù)分析或可視化。
通過遵循這三個(gè)階段,用戶可以有效地利用加速的 GSQL 構(gòu)造來簡化圖形處理任務(wù),優(yōu)化算法執(zhí)行,并高效地從圖形數(shù)據(jù)中檢索有價(jià)值的見解。
績效基準(zhǔn)和結(jié)果
圖形算法性能比較
該基準(zhǔn)測試在 2 節(jié)點(diǎn)集群上進(jìn)行,每個(gè)節(jié)點(diǎn)都具有 4x NVIDIA A100 40GB GPU、AMD EPYC 7713 64 核處理器和 512GB RAM。
基準(zhǔn)數(shù)據(jù)集
Graphalytics 是由鏈接數(shù)據(jù)基準(zhǔn)委員會(huì)(LDBC)開發(fā)的綜合基準(zhǔn)套件,旨在評(píng)估圖形數(shù)據(jù)庫管理系統(tǒng)(GDBMS)和圖形處理框架的性能。它提供了真實(shí)世界的數(shù)據(jù)集、不同的工作負(fù)載和一系列圖形算法,以幫助研究人員和組織評(píng)估系統(tǒng)的效率和可擴(kuò)展性。欲了解更多信息,請(qǐng)參閱 LDBC 圖形分析基準(zhǔn)。
圖表 | 頂點(diǎn) | 邊緣 | TigerGraph 群集(秒) | cuGraph+TigerGraph(python)(秒) | cuGraph+TigerGraph(本機(jī))(秒) |
圖 22 | 239 萬? | 6400 萬 | 311.162 | 12.14(25 倍) | 6.91(45 倍) |
圖 23 | 460 萬? | 1.29 億 | 617.82 | 14.44(42X) | 9.04(68 倍) |
圖 24 | 887 萬 | 260 米 | 1205.34 | 24.63(48 倍) | 14.69(82 倍) |
圖表 25 | 1706 萬? | 5.23 億 | 2888.74 | 42.5(67 倍) | 21.09(137 倍) |
圖 26 | 3280 萬? | 10.5 億 | 4842.4 | 73.84(65 倍) | 41.01(118 倍) |
表 1。與 cuGraph 加速(Python 和 Native)集成方法相比,基于 TigerGraph CPU 的解決方案
優(yōu)化圖形處理:在 TigerGraph 中集成 cuGraph 的成本分析
在追求增強(qiáng)圖形處理能力的過程中,cuGraph 與 TigerGraph 的集成已被證明是游戲規(guī)則的改變者。通過在 TigerGraph 框架內(nèi)利用 cuGraph 的 GPU 加速功能,我們不僅實(shí)現(xiàn)了顯著的速度提高,還顯著降低了總體成本。
機(jī)器信息:以下是機(jī)器的詳細(xì)信息:
實(shí)例名稱:m7a.32xlarge
節(jié)點(diǎn)總數(shù):2 個(gè)
按需時(shí)薪:7.41888 美元
vCPU 數(shù)量:128
內(nèi)存大小:512 GiB
實(shí)例名稱:p4d.24xlarge
節(jié)點(diǎn)總數(shù):1 個(gè)
按需時(shí)薪:$32.77
vCPU 數(shù)量:96
內(nèi)存大小:1152 GiB
GPU 信息:
規(guī)格: NVIDIA A100 GPU
計(jì)數(shù):8
內(nèi)存:320 GB HBM2
圖表 | TigerGraph 群集(秒) | cuGraph+TigerGraph(本機(jī))(秒) | CPU 成本 | GPU 成本 | 收益(X) |
圖 22 | 311.162 | 6.91(45 倍) | $1.28 | $0.06 | 20 |
圖 23 | 617.82 | 9.04(68 倍) | $2.55 | $0.08 | 31 |
圖 24 | 1205.34 | 14.69(82 倍) | $4.97 | $0.13 | 37 |
圖表 25 | 2888.74 | 21.09(137 倍) | $11.91 | $0.19 | 62 |
圖 26 | 4842.4 | 41.01(118 倍) | $19.96 | $0.37 | 53 |
表 2。與我們的基準(zhǔn)機(jī)器相似的 AWS 機(jī)器的成本分析
這些結(jié)果表明,當(dāng)將 cuGraph 與 TigerGraph 集成時(shí),圖形處理的速度顯著提高了 100 倍。同時(shí),成本分析顯示,總體成本大幅降低了 50 倍,顯示了這種集成的效率和成本效益。這種優(yōu)化不僅確保了卓越的性能,而且為圖形分析工作負(fù)載提供了更經(jīng)濟(jì)的解決方案。
總結(jié)
在對(duì)圖形分析的全面探索中,我們開始了一段徹底改變處理和分析復(fù)雜圖形數(shù)據(jù)方式的旅程。從傳統(tǒng)架構(gòu)的挑戰(zhàn)到我們下一代解決方案的推出,本文涵蓋了一系列主題,展示了先進(jìn)技術(shù)和創(chuàng)新方法的變革力量。
圖形處理技術(shù)的發(fā)展:
我們首先剖析了傳統(tǒng)圖形處理架構(gòu)的局限性,強(qiáng)調(diào)了對(duì)共享磁盤基礎(chǔ)設(shè)施、Python 和 Thrift 通信層的依賴性。這些挑戰(zhàn)凸顯了對(duì)圖形分析新方法的需求,這種方法可以釋放新的性能、可擴(kuò)展性和效率水平。
介紹下一代架構(gòu):下一代架構(gòu)的引入。
進(jìn)入我們的下一代架構(gòu)——圖形處理中改變游戲規(guī)則的范式轉(zhuǎn)變。我們的體系結(jié)構(gòu)完全構(gòu)建在 C++中,利用一系列尖端技術(shù),包括 cuGraph、Raft、NCCL 和 ZettaAccel,將圖形分析加速到前所未有的高度。
關(guān)鍵進(jìn)展和創(chuàng)新:
通過我們的新體系結(jié)構(gòu),我們徹底改變了圖形處理的編譯和執(zhí)行階段。通過將 cuGraph 和 ZettaAccel 直接集成到 TigerGraph 中,我們簡化了編譯過程,消除了復(fù)雜的依賴關(guān)系,并解鎖了 GPU 加速的圖形處理的核心。我們的體系結(jié)構(gòu)的動(dòng)態(tài) GPU 資源管理和精簡的數(shù)據(jù)傳輸機(jī)制確保了各種圖形處理任務(wù)的最佳性能和可擴(kuò)展性。
前所未有的性能和可擴(kuò)展性:無與倫比的計(jì)算能力和靈活的架構(gòu)設(shè)計(jì)。
結(jié)果不言自明——我們的下一代架構(gòu)提供了無與倫比的性能提升,實(shí)現(xiàn)了復(fù)雜圖形算法的快速執(zhí)行和處理大規(guī)模數(shù)據(jù)集的無縫可擴(kuò)展性。通過利用 GPU 加速和創(chuàng)新 C++技術(shù)的力量,我們重新定義了圖形分析的邊界,使組織能夠釋放新的見解,推動(dòng)不同領(lǐng)域的創(chuàng)新。
未來的發(fā)展方向和機(jī)遇:
當(dāng)我們展望未來時(shí),可能性是無限的。隨著 GPU 技術(shù)、算法優(yōu)化以及與新興框架的集成的不斷進(jìn)步,我們的體系結(jié)構(gòu)將繼續(xù)發(fā)展,突破圖形分析的極限。
開始使用
如果你渴望利用加速圖形處理的力量,以下是你如何開始你的旅程:
檢查您的要求:確保您的 TigerGraph 版本 3.9.X 和 NVIDIA GPU 配備了 RAPID 支持。這些先決條件對(duì)于釋放加速圖形處理的潛力至關(guān)重要。
表達(dá)您的興趣:如果您對(duì)探索加速圖形處理感興趣,請(qǐng)聯(lián)系 TigerGraph 或Zettabolt。無論您是經(jīng)驗(yàn)豐富的數(shù)據(jù)科學(xué)家還是圖形分析的新手,他們的團(tuán)隊(duì)都會(huì)隨時(shí)為您提供幫助。
指導(dǎo)和支持:一旦您表達(dá)了興趣,TigerGraph 或 Zettabolt 的專家將指導(dǎo)您完成最初的步驟,為您提供所有必要的信息,以啟動(dòng)您的加速圖形處理之旅。從設(shè)置基礎(chǔ)架構(gòu)到微調(diào)性能,他們的支持確保了實(shí)施的順利和成功。
審核編輯 黃宇
-
NVIDIA
+關(guān)注
關(guān)注
14文章
4978瀏覽量
102987 -
gpu
+關(guān)注
關(guān)注
28文章
4729瀏覽量
128890 -
算法
+關(guān)注
關(guān)注
23文章
4607瀏覽量
92829 -
圖形分析
+關(guān)注
關(guān)注
0文章
3瀏覽量
875
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論