DolphinDB 推出的 CPU-GPU 異構(gòu)計算平臺 Shark,將 DolphinDB 上的復(fù)雜指標(biāo)計算能力無縫切換到 GPU 算力平臺,大幅提升了計算性能。Shark 最新版本給開發(fā)者提供了兩個主要功能:因子挖掘和因子計算。通過使用遺傳算法,因子挖掘功能能夠從歷史金融數(shù)據(jù)中提取出有效因子,提高金融數(shù)據(jù)分析的質(zhì)量和效率。因子計算功能針對金融領(lǐng)域,提供了豐富的函數(shù)庫,為大規(guī)模金融數(shù)據(jù)分析與處理提供了完整解決方案。
自 2023 年 DolphinDB 正式加入“NVIDIA 初創(chuàng)加速計劃(NVIDIA Inception)” 以來,雙方技術(shù)團(tuán)隊持續(xù)開展技術(shù)交流與探討。此次,DolphinDB 開發(fā)團(tuán)隊與 NVIDIA 團(tuán)隊合作,通過利用 NVIDIA RAPIDS 加速 Shark 異構(gòu)計算平臺的因子挖掘算法運行效率,幫助 Shark 將因子挖掘的效率提升 2 - 10 倍;并基于 NVIDIA cuDF 實現(xiàn) Shark 因子高效計算,大幅減少開發(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ù)算子。
當(dāng)前挑戰(zhàn)
Shark 的因子挖掘功能,通過利用遺傳算法從數(shù)據(jù)中挖掘出有效的因子。在這一場景中,遺傳算法會隨機生成大量因子并進(jìn)行計算。這一過程會頻繁地創(chuàng)建和釋放臨時空間來存儲中間結(jié)果,直接使用原生的 CUDA C 顯存分配和釋放接口,會嚴(yán)重降低執(zhí)行效率。
Shark 的因子計算功能,針對金融領(lǐng)域的數(shù)據(jù)分析與處理,提供了豐富的函數(shù)庫。如果從零開始將 CPU 的函數(shù)遷移至 GPU,需要為 GPU 重新實現(xiàn)一套底層數(shù)據(jù)結(jié)構(gòu)以及基礎(chǔ)計算函數(shù),會導(dǎo)致開發(fā)周期的延長以及開發(fā)成本的增加。
應(yīng)用方案
基于以上挑戰(zhàn),DolphinDB 開發(fā)團(tuán)隊與 NVIDIA 團(tuán)隊及 RAPIDS 開發(fā)團(tuán)隊合作,通過利用 RAPIDS RMM,解決因子挖掘過程中頻繁申請和釋放顯存導(dǎo)致的性能問題;通過基于 RAPIDS libcudf 進(jìn)行二次開發(fā),實現(xiàn)因子計算,從而縮短開發(fā)周期,降低開發(fā)成本。
Shark 進(jìn)行因子挖掘時,會通過遺傳算法隨機生成海量的因子計算公式。這些公式長度不等,接受的參數(shù)數(shù)量也不盡相同。因此在計算時,需要頻繁地申請和釋放臨時空間用于存儲中間結(jié)果。DolphinDB 開發(fā)團(tuán)隊通過使用 RMM 對顯存進(jìn)行池化,從而對中間結(jié)果所使用的顯存進(jìn)行高效地分配、釋放和重用。
Shark 支持用戶輸入自定義的公式,并自動將自定義公式轉(zhuǎn)換為計算圖,并在 GPU 完成計算,從而加快數(shù)據(jù)分析和處理的效率。如果從零開始將 DolphinDB 的計算函數(shù)遷移至 Shark,需要在 GPU 構(gòu)建 array、table 等底層數(shù)據(jù)結(jié)構(gòu),并實現(xiàn)大量基礎(chǔ)計算函數(shù)。經(jīng)過調(diào)研后,DolphinDB 開發(fā)團(tuán)隊決定基于 RAPIDS libcudf 進(jìn)行二次開發(fā),復(fù)用 cuDF 的 column、table 等底層數(shù)據(jù)結(jié)構(gòu);并借助 cuDF 的 groupby 和 rolling 框架,只需要完成算子的核心計算邏輯,即可完成 DolphinDB 時序算子和橫截面算子的遷移,極大提升了開發(fā)效率,降低了開發(fā)成本。
效果展示
下圖展示了在不同規(guī)模數(shù)據(jù)下,使用 RAPIDS的 RMM 顯存管理庫相對于原生的 CUDA 顯存分配 API,Shark 因子挖掘效率的對比。可以清楚地看到,使用 RMM 可以顯著提升 Shark 因子挖掘效率,最高可達(dá)到 10 倍的加速比。
除此之外,Shark 通過使用 RAPIDS libcudf,大大提升了因子的計算效率。下圖中對比了 1000 個 group,每個 group 有 10 萬行的數(shù)據(jù),采用分組方式計算下面的算子??梢钥吹脚c CPU 相比,利用 GPU 總體耗時(包含拷貝時間),基本達(dá)到了一個數(shù)量級的加速比。
借助 RAPIDS,Shark 的因子挖掘效率提升了 10 倍。除此之外,基于 cuDF 進(jìn)行二次開發(fā),只需要實現(xiàn)算子的核心邏輯,就可以達(dá)到一個數(shù)量級的加速,并極大降低了算子遷移成本。
免責(zé)聲明:以上內(nèi)容為本網(wǎng)站轉(zhuǎn)自其它媒體,相關(guān)信息僅為傳遞更多信息之目的,不代表本網(wǎng)觀點,亦不代表本網(wǎng)站贊同其觀點或證實其內(nèi)容的真實性。如稿件版權(quán)單位或個人不想在本網(wǎng)發(fā)布,可與本網(wǎng)聯(lián)系,本網(wǎng)視情況可立即將其撤除。
互聯(lián)網(wǎng)新聞信息服務(wù)許可證10120230012 信息網(wǎng)絡(luò)傳播視聽節(jié)目許可證0121673 增值電信業(yè)務(wù)經(jīng)營許可證京B2-20171219 廣播電視節(jié)目制作經(jīng)營許可證(京)字第10250號
關(guān)于我們 中宏網(wǎng)動態(tài) 廣告服務(wù) 中宏網(wǎng)版權(quán)所有 京ICP備2023030128號-1 舉報電話:010-63359623
Copyright ? 2016-2025 by www.uokii.com. all rights reserved 運營管理:國家發(fā)展和改革委員會宏觀經(jīng)濟雜志社