Rapids簡介與Benchmark評測
RAPIDS為NVIDIA推出的針對資料科學與機器學習的GPU加速平台,主要是透過CUDA加速函式庫進行最佳化的計算,讓使用者方便使用GPU的運算資源,並提供Python搭配jupyter的介面,在進行資料分析時可將數據可視化。RAPIDS構建於Apache Arrow、pandas和scikit-learn等流行的開源項目之上,為最流行的Python數據科學工具鏈帶來了GPU效能。
NVIDIA為了將更多機器學習方法引入RAPIDS也與許多open-source 貢獻者合作開發,如Anaconda、BlazingDB、Databricks、Quansight 和 scikit-learn,其中Apache Arrow及 Pandas (python資料科學函式庫) 的創造者也參與其中,將RAPIDS的開發環境導入Apache Arrow的資料格式,大幅提升資料傳輸和分析的效率,NVIDIA也正努力將RAPIDS與Apache Spark進行整合。
Apache Arrow
cuDF
GPU DataFrame library
cuDF為GPU DataFrame 函式庫,將資料以DataFrame的格式儲存,並用於數據分析與計算,使用上與python中pandas類似,能夠進行資料讀取、過濾、聚合…等等,此外,cuDF基於Apache Arrow的記憶體格式開發,能提升資料傳輸GPU運算的效率,也能簡單地將其他資料來源(如:Pandas、spark、csv…等)轉換為cuDF的資料格式,或將cuDF轉為其他格式使用,透過開源的JIT編譯器(即時編譯):Numba, cuDF也提供平行化處理資料的功能,使用者可使用cuDF提供的包裝函式,簡單地對資料進行平行計算,而對於kernel使用有經驗的人,也可直接使用cuDF DataFrame與Numba來撰寫kernel 函式進行計算。
DataFrame為二維的資料結構(如上圖),可以使用不同的指令來檢視與使用想要的資料(如:資料大小、長度、空值的數量…等),該資料格式可用來進行機器學習運算,雖然與cuDF DataFrame形式與使用上相同,然而cuDF因為需在GPU上宣告空間而有額外的處理時間,且默認的記憶體管理模式下,cuDF DataFrame的空間大小取決於GPU Memory,通常會比Pandas DataFrame小。
cuML
NVIDIA與DASK合作開發,往後將推出多GPU多節點的技術在machine learning的方法中實現,預計在RAPIDS 1.0版時大部分方法都可以支援。
Benchmarks - Official Test
Benchmarks - Actual Test
測試系統規格: WinFast WS830 (Intel Xeon W-2135, 128GB RAM, GTX 1070 8GB)
軟體規格: Ubuntu 18.04, CUDA 10.0, cuDNN 7.5