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