cuGraph-GPU图形分析
cuGraph-GPU圖形分析
所述RAPIDS cuGraph庫是GPU的集合加速圖形算法,在GPU DataFrames中發現過程數據。cuGraph的愿景是使圖分析無處不在,以至于用戶只是根據分析而不是技術或框架來思考。為了實現這一構想,cuGraph操作時,在Python的層,在GPU上DataFrames,從而允許無縫傳遞ETL任務之間的數據的cuDF和機器學習任務cuML。熟悉Python的數據科學家將迅速了解cuGraph如何與cuDF的類似Pandas的API集成。同樣,熟悉NetworkX的用戶將迅速認識cuGraph中提供的類似NetworkX的API,其目標是允許以最小的努力將現有代碼移植到RAPIDS中。對于熟悉C ++ / CUDA和圖形結構的用戶,還提供了C ++ API。但是,C ++層的類型和結構檢查較少。
有關更多項目詳細信息,請參見Rapids.ai。
注意:有關最新的穩定README.md,確保位于最新的分支上。
進口 書法
#使用read_csv數據讀入一個cuDF數據幀
GDF = cudf。read_csv(“ graph_data.csv”,名稱= [ “ src”,“ dst” ],dtype = [ “ int32”,“ int32” ])
import cugraph
# read data into a cuDF DataFrame using read_csv
gdf = cudf.read_csv(“graph_data.csv”, names=[“src”, “dst”], dtype=[“int32”, “int32”])
# We now have data as edge pairs
# create a Graph using the source (src) and destination (dst) vertex pairs
G = cugraph.Graph()
G.from_cudf_edgelist(gdf, source=‘src’, destination=‘dst’)
# Let’s now get the PageRank score of each vertex by calling cugraph.pagerank
df_page = cugraph.pagerank(G)
# Let’s look at the PageRank Score (only do this on small graphs)
for i in range(len(df_page)):
print("vertex " + str(df_page[‘vertex’].iloc[i]) +
" PageRank is " + str(df_page[‘pagerank’].iloc[i]))
支持的算法
支持圖
支持的數據類型
cuGraph支持創建幾種數據類型的圖形:
? cuDF DataFrame
? Pandas DataFrame
cuGraph支持執行來自不同圖形對象的圖形算法
? cuGraph圖類
? NetworkX圖類
? CuPy稀疏矩陣
? SciPy稀疏矩陣
cuGraph嘗試根據輸入類型匹配返回類型。因此,NetworkX輸入將返回與NetworkX相同的數據類型。
cuGraph注意
當前版本的cuGraph有一些限制:
? 頂點ID應該是從0開始的連續整數。
cuGraph提供了重新編號功能來緩解此問題,默認情況下,將數據添加到圖形時會自動調用該功能。重編號函數的輸入頂點ID可以是任何類型,可以是非連續的,可以是多列,并且可以從任意數字開始。重新編號功能將提供的輸入頂點ID映射到從0開始的32位連續整數。cuGraph仍然要求重新編號的頂點ID必須以32位整數表示。這些限制已得到解決,將很快修復。
此外,使用自動重編號功能時,結果中的頂點會自動取消編號。
cuGraph不斷更新和改進。如果新版本遇到錯誤,請參閱《Transition Guide》
圖形大小和GPU內存大小
所需的內存量取決于圖形結構和執行的分析。根據一條簡單的經驗法則,GPU內存量應約為數據大小的兩倍。這給CSV 數據讀取和其它轉換功能帶來了開銷。有很多方法可以使用規則,但是使用較小的數據塊。
使用托管內存進行超額預訂也可以超出上述內存限制。
獲取cuGraph
介紹
有三種獲取cuGraph的方法:
? Quick start with Docker Demo Repo
? Conda Installation
? Build from Source
快速開始
參閱Demo Docker Repository,根據運行的NVIDIA CUDA版本選擇一個標簽。這提供了一個帶有示例筆記和數據的可立即運行的Docker容器,展示了如何利用所有RAPIDS庫:cuDF,cuML和cuGraph。
Conda
使用conda安裝cuGraph很容易。可以使用Miniconda進行最小的conda安裝,也可以使用Anaconda進行完整的安裝。
使用conda命令安裝和更新cuGraph:
# CUDA 10.1
conda install -c nvidia -c rapidsai -c numba -c conda-forge -c defaults cugraph cudatoolkit=10.1
# CUDA 10.2
conda install -c nvidia -c rapidsai -c numba -c conda-forge -c defaults cugraph cudatoolkit=10.2
# CUDA 11.0
conda install -c nvidia -c rapidsai -c numba -c conda-forge -c defaults cugraph cudatoolkit=11.0
注意:此conda安裝僅適用于Linux和Python版本3.7 / 3.8。
https://github.com/rapidsai/cugraph
總結
以上是生活随笔為你收集整理的cuGraph-GPU图形分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: nvGRAPH API参考分析(二)
- 下一篇: 扩展LLVM:添加指令、内部函数、类型等