咨询热线 4001616691
联系我们 中国大陆 CNY

新闻中心

NVIDIA RAPIDS 助力 Shark 平台实现高效数据挖掘和计算 NEWS DETAIL

当前位置:首页 > 新闻中心
资讯分类 · 新闻中心 发布时间 · 2026-04-29

客户挑战:因子挖掘与计算的性能瓶颈

Shark 的因子挖掘功能通过遗传算法从数据中挖掘出有效的因子。在这一场景中,遗传算法会随机生成大量因子并进行计算,频繁地创建和释放临时空间来存储中间结果。直接使用原生的 CUDA C 显存分配和释放接口,会严重降低执行效率。

同时,Shark 的因子计算功能针对金融领域的数据分析与处理提供了丰富的函数库。如果从零开始将 CPU 的函数迁移至 GPU,需要为 GPU 重新实现一套底层数据结构以及基础计算函数,会导致开发周期的延长以及开发成本的增加。

应用方案:基于 RAPIDS 的双重优化

基于以上挑战,DolphinDB 开发团队与 NVIDIA 团队及 RAPIDS 开发团队合作,通过以下方式实现突破:

  • 利用 RAPIDS RMM 解决显存管理瓶颈:RMM(RAPIDS Memory Manager)是一套开源的内存/显存管理库,提供 C++ 和 Python 接口,相比 cuMalloc、cuFree 等操作具有更好的性能和灵活性。Shark 进行因子挖掘时,通过使用 RMM 对显存进行池化,从而对中间结果所使用的显存进行高效地分配、释放和重用。

  • 基于 RAPIDS libcudf 进行二次开发:libcudf 是基于 GPU 的 C++ DataFrame 库,提供了基础数据结构和内置的基础函数算子。DolphinDB 开发团队复用 cuDF 的 column、table 等底层数据结构,并借助 cuDF 的 groupby 和 rolling 框架,只需要完成算子的核心计算逻辑,即可完成 DolphinDB 时序算子和横截面算子的迁移,极大提升了开发效率。

效果:最高 10 倍性能提升

使用 RAPIDS RMM 显存管理库相对于原生的 CUDA 显存分配 API,Shark 因子挖掘效率显著提升,最高可达到 10 倍的加速比

同时,Shark 通过使用 RAPIDS libcudf,大大提升了因子的计算效率。在测试场景中(1000 个 group,每个 group 有 10 万行数据,采用分组方式计算),与 CPU 相比,利用 GPU 总体耗时(包含拷贝时间)基本达到了一个数量级的加速比

借助 RAPIDS,Shark 的因子挖掘效率提升了 10 倍。基于 cuDF 进行二次开发,只需要实现算子的核心逻辑,就可以达到一个数量级的加速,并极大降低了算子迁移成本。