DolphinDB 是一家高性能數(shù)據(jù)庫研發(fā)企業(yè),也是 NVIDIA 初創(chuàng)加速計(jì)劃成員,其開發(fā)的產(chǎn)品基于高性能分布式時(shí)序數(shù)據(jù)庫,是支持復(fù)雜計(jì)算和流數(shù)據(jù)分析的實(shí)時(shí)計(jì)算平臺(tái),適用于金融、電力、物聯(lián)網(wǎng)和零售等行業(yè)。
DolphinDB 公司推出的 CPU-GPU 異構(gòu)計(jì)算平臺(tái) Shark,將 DolphinDB 上的復(fù)雜指標(biāo)計(jì)算能力無縫切換到 GPU 算力平臺(tái),從而大幅提升了計(jì)算性能。
DolphinDB 開發(fā)團(tuán)隊(duì)與 NVIDIA 團(tuán)隊(duì)合作,通過利用NVIDIA RAPIDS加速 Shark 異構(gòu)計(jì)算平臺(tái)的因子挖掘算法運(yùn)行效率,幫助 Shark 將因子挖掘的效率提升 2 - 10 倍,并基于NVIDIA cuDF實(shí)現(xiàn) Shark 因子高效計(jì)算,大幅減少開發(fā)成本,縮短開發(fā)周期。
RAPIDS 的 RMM 是一套開源的內(nèi)存/顯存管理庫,提供 C++ 和 Python 接口,相比 cuMalloc、cuFree 等操作來講,具有更好的性能和靈活性;RAPIDS libcudf 是基于 GPU 的 C++ DataFrame 庫,提供了基礎(chǔ)數(shù)據(jù)結(jié)構(gòu),并且內(nèi)置了基礎(chǔ)的函數(shù)算子。
Shark 的因子挖掘功能,能通過利用遺傳算法從數(shù)據(jù)中挖掘出有效的因子。在這一場景中,遺傳算法會(huì)隨機(jī)生成大量因子并進(jìn)行計(jì)算。這一過程會(huì)頻繁地創(chuàng)建和釋放臨時(shí)空間來存儲(chǔ)中間結(jié)果,直接使用原生的 CUDA C 顯存分配和釋放接口,會(huì)嚴(yán)重降低執(zhí)行效率。
Shark 的因子計(jì)算功能,針對金融領(lǐng)域的數(shù)據(jù)分析與處理,提供了豐富的函數(shù)庫。如果從零開始將 CPU 的函數(shù)遷移至 GPU,需要為 GPU 重新實(shí)現(xiàn)一套底層數(shù)據(jù)結(jié)構(gòu)以及基礎(chǔ)計(jì)算函數(shù),會(huì)導(dǎo)致開發(fā)周期的延長以及開發(fā)成本的增加。
基于以上挑戰(zhàn),DolphinDB 開發(fā)團(tuán)隊(duì)與 NVIDIA 團(tuán)隊(duì)及 RAPIDS 開發(fā)團(tuán)隊(duì)合作,通過利用 RAPIDS RMM,解決因子挖掘過程中頻繁申請和釋放顯存導(dǎo)致的性能問題;通過基于 RAPIDS libcudf 進(jìn)行二次開發(fā),實(shí)現(xiàn)因子計(jì)算,從而縮短開發(fā)周期,降低開發(fā)成本。
Shark 進(jìn)行因子挖掘時(shí),會(huì)通過遺傳算法隨機(jī)生成海量的因子計(jì)算公式。這些公式長度不等,接受的參數(shù)數(shù)量也不盡相同。因此在計(jì)算時(shí),需要頻繁地申請和釋放臨時(shí)空間用于存儲(chǔ)中間結(jié)果。DolphinDB 開發(fā)團(tuán)隊(duì)通過使用 RMM 對顯存進(jìn)行池化,從而對中間結(jié)果所使用的顯存進(jìn)行高效地分配、釋放和重用。
Shark 支持用戶輸入自定義的公式,自動(dòng)將自定義公式轉(zhuǎn)換為計(jì)算圖,并在 GPU 完成計(jì)算,從而加快數(shù)據(jù)分析和處理的效率。如果從零開始將 DolphinDB 的計(jì)算函數(shù)遷移至 Shark,則需要在 GPU 構(gòu)建 array、table 等底層數(shù)據(jù)結(jié)構(gòu),并實(shí)現(xiàn)大量基礎(chǔ)計(jì)算函數(shù)。經(jīng)過調(diào)研后,DolphinDB 開發(fā)團(tuán)隊(duì)決定基于 RAPIDS libcudf 進(jìn)行二次開發(fā),復(fù)用 cuDF 的 column、table 等底層數(shù)據(jù)結(jié)構(gòu),并借助 cuDF 的 groupby 和 rolling 框架,只需要完成算子的核心計(jì)算邏輯,即可完成 DolphinDB 時(shí)序算子和橫截面算子的遷移,這樣不僅極大提升了開發(fā)效率,還降低了開發(fā)成本。
下圖展示了在不同規(guī)模數(shù)據(jù)下,使用 RAPIDS 的 RMM 顯存管理庫相對于原生的 CUDA 顯存分配 API,Shark 因子挖掘效率的對比??梢郧宄乜吹剑褂?RMM 可以顯著提升 Shark 因子挖掘效率,最高可達(dá)到 10 倍的加速比。

除此之外,Shark 通過使用 RAPIDS libcudf,大大提升了因子的計(jì)算效率。下圖中對比了 1000 個(gè) group,每個(gè) group 有 10 萬行的數(shù)據(jù),采用分組方式計(jì)算下面的算子。可以看到與 CPU 相比,利用 GPU 總體耗時(shí)(包含拷貝時(shí)間),基本達(dá)到了一個(gè)數(shù)量級的加速比。

借助 RAPIDS ,Shark 的因子挖掘效率提升了 10 倍。除此之外,基于 cuDF 進(jìn)行二次開發(fā),只需要實(shí)現(xiàn)算子的核心邏輯,就可以達(dá)到一個(gè)數(shù)量級的加速,并極大降低了算子遷移成本。
-
NVIDIA
+關(guān)注
關(guān)注
14文章
5687瀏覽量
110115 -
gpu
+關(guān)注
關(guān)注
28文章
5271瀏覽量
136068 -
數(shù)據(jù)庫
+關(guān)注
關(guān)注
7文章
4083瀏覽量
68538
原文標(biāo)題:NVIDIA RAPIDS 助力 Shark 平臺(tái)實(shí)現(xiàn)高效數(shù)據(jù)挖掘和計(jì)算
文章出處:【微信號:NVIDIA-Enterprise,微信公眾號:NVIDIA英偉達(dá)企業(yè)解決方案】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
Jump Trading采用NVIDIA Rubin平臺(tái)大幅提升研究速度
NVIDIA攜手微軟加速機(jī)器人和物理AI的發(fā)展
NVIDIA cuDF和cuVS獲全球領(lǐng)先數(shù)據(jù)平臺(tái)采用
NVIDIA加速計(jì)算平臺(tái)助力從地球到太空的AI應(yīng)用
NVIDIA DGX SuperPOD為Rubin平臺(tái)橫向擴(kuò)展提供藍(lán)圖
利用NVIDIA Cosmos開放世界基礎(chǔ)模型加速物理AI開發(fā)
NVIDIA推出NVQLink高速互連架構(gòu)
NVIDIA Spectrum-X 以太網(wǎng)交換機(jī)助力 Meta 和 Oracle 加速網(wǎng)絡(luò)性能
序禎達(dá)生物利用NVIDIA Parabricks技術(shù)加速多組學(xué)分析
Cadence 借助 NVIDIA DGX SuperPOD 模型擴(kuò)展數(shù)字孿生平臺(tái)庫,加速 AI 數(shù)據(jù)中心部署與運(yùn)營
NVIDIA RAPIDS 25.06版本新增多項(xiàng)功能
如何利用硬件加速提升通信協(xié)議的安全性?
NVIDIA助力CoreWeave云平臺(tái)性能升級
利用NVIDIA RAPIDS加速DolphinDB Shark平臺(tái)提升計(jì)算性能
評論