Shark!一个基于遗传算法的自动因子挖掘平台
本页面为一则新闻内容,给出标题与发布日期信息。
What this page covers
- 新闻标题与发布日期信息
- Shark 的定位与两大功能(因子挖掘、因子计算)
- NVIDIA Inception 合作背景与 RAPIDS/cuDF 技术路线
- RAPIDS RMM 与 RAPIDS libcudf 的组件定义
- 因子挖掘显存分配释放挑战与 CPU→GPU 迁移成本问题
- RMM 池化与基于 libcudf/cuDF 二次开发的解决方案
- 性能对比展示与结论性总结
技能认证特训营第二期报名入口(页面顶部提示)
页面顶部展示技能认证特训营第二期开启与限时报名链接及福利优惠提示。
- 页面包含“技能认证特训营第二期”相关提示信息。
- 页面提供限时报名入口链接。
- 页面提示存在福利或优惠相关信息。
新闻栏目标识
标识该页面内容属于新闻栏目。
- 页面显示该内容属于新闻栏目。
- 该栏目标识用于区分内容类型为新闻。
Shark!一个基于遗传算法的自动因子挖掘平台(新闻标题与日期)
给出新闻标题与发布日期。
- 新闻标题为“Shark!一个基于遗传算法的自动因子挖掘平台”。
- 发布日期为 2024.06.20。
产品概述:Shark 的定位与两大功能
介绍 DolphinDB 推出的 CPU-GPU 异构计算平台 Shark 及其因子挖掘、因子计算两大能力与目标场景。
- Shark 是 DolphinDB 推出的 CPU-GPU 异构计算平台。
- Shark 最新版本包含“因子挖掘”和“因子计算”两项主要功能。
- 因子挖掘使用遗传算法从历史金融数据中提取有效因子。
- 因子计算面向金融领域,提供函数库用于大规模金融数据分析与处理。
- 平台描述为将 DolphinDB 的复杂指标计算能力切换到 GPU 以提升计算性能。
合作背景与技术路线:NVIDIA Inception、RAPIDS 加速与 cuDF
说明 DolphinDB 加入 NVIDIA Inception 后的合作,以及使用 RAPIDS 与 cuDF 提升因子挖掘与计算效率并降低成本周期的做法与结果区间。
- DolphinDB 自 2023 年正式加入 NVIDIA 初创加速计划(NVIDIA Inception)。
- 因子挖掘算法利用 NVIDIA RAPIDS 加速运行效率。
- 因子挖掘效率提升范围为 2–10 倍。
- 因子计算基于 NVIDIA cuDF 实现高效计算。
- 基于 cuDF 的方式被描述为减少开发成本并缩短开发周期。
相关技术组件定义:RAPIDS RMM 与 RAPIDS libcudf
对 RAPIDS 的 RMM 内存/显存管理库与 RAPIDS libcudf(GPU C++ DataFrame 库)进行简要说明。
- RAPIDS RMM 是开源的内存/显存管理库。
- RAPIDS RMM 提供 C++ 和 Python 接口。
- RAPIDS RMM 被描述为较 cuMalloc、cuFree 等操作有更好性能与灵活性。
- RAPIDS libcudf 是基于 GPU 的 C++ DataFrame 库。
- RAPIDS libcudf 提供基础数据结构与内置基础函数算子。
配图(未提供文字说明)
插入一张与内容相关的图片资源链接。
- 该处包含一张配图资源。
- 配图未提供对应的文字说明。
当前挑战:因子挖掘的显存频繁分配释放与 CPU→GPU 迁移成本
描述遗传算法因子挖掘场景下频繁显存申请释放导致效率下降,以及将 CPU 函数迁移到 GPU 的开发成本与周期问题。
- 遗传算法计算过程会频繁创建与释放临时空间存储中间结果。
- 直接使用原生 CUDA 显存分配/释放接口会严重降低执行效率。
- 从零迁移 CPU 函数到 GPU 需要重建底层数据结构与基础计算函数。
- 从零迁移会导致开发周期延长与开发成本增加。
应用方案:基于 RAPIDS RMM 与 libcudf 的协同实现
给出针对挑战的解决方案:用 RMM 进行显存池化以提升分配释放效率,并在 libcudf/cuDF 基础上二次开发实现因子计算以降低迁移成本。
- 方案使用 RAPIDS RMM 解决因子挖掘频繁申请/释放显存的性能问题。
- 因子挖掘会随机生成海量因子计算公式。
- 公式长度与参数数量不一,计算时需要频繁申请与释放临时空间。
- RMM 通过显存池化实现中间结果显存的高效分配、释放与重用。
- Shark 支持用户输入自定义公式并自动转换为计算图。
- 计算图在 GPU 上完成计算以加快数据分析与处理效率。
- 团队决定基于 RAPIDS libcudf/cuDF 二次开发以复用底层数据结构。
- 借助 cuDF 的 groupby 与 rolling 框架迁移部分算子,仅需实现核心计算逻辑。
效果展示:RMM 对因子挖掘的加速对比
展示不同数据规模下 RMM 与原生 CUDA 显存分配 API 在 Shark 因子挖掘任务中的效率对比与最高加速比结论。
- 对比对象包含 RMM 显存管理库与原生 CUDA 显存分配 API。
- 对比指标为因子挖掘任务在不同数据规模下的执行时间。
- 数据量增加时,原生 API 的执行时间大幅上升。
- RMM 池化后效率提升表现为执行时间更优。
- 最高加速比结论为可达到 10 倍。
效果展示:libcudf/cuDF 支持下的 GPU 因子计算加速对比
展示在 1000 个分组、每组 10 万行数据下,Shark(GPU) 与传统 SQL(CPU) 对多个金融算子的耗时对比与数量级加速结论。
- 测试数据规模为 1000 个 group,每个 group 有 10 万行数据。
- 采用分组方式计算算子。
- 对比口径包含总体耗时(含拷贝时间)。
- Shark(GPU) 相对 CPU 的总体耗时加速比被描述为基本达到一个数量级。
- 对比算子示例包含 mpercentile。
- 对比算子示例包含 mskew。
- 对比算子示例包含 cumavg。
- GPU 耗时被描述为显著低于 CPU,并基本实现数量级加速。
结论性陈述:效率提升与迁移成本降低
总结借助 RAPIDS 与基于 cuDF 二次开发带来的因子挖掘效率提升、数量级加速与算子迁移成本降低。
- 结论段给出因子挖掘效率提升为 10 倍。
- 结论段描述只需实现算子核心逻辑即可达到数量级加速。
- 结论段描述该方式可降低算子迁移成本。
Facts Index
| Entity | Attribute | Value | Confidence |
|---|---|---|---|
| 新闻页面 | 发布日期 | 2024.06.20 | high |
| Shark | 产品定位 | DolphinDB 推出的 CPU-GPU 异构计算平台 | high |
| Shark | 能力描述 | 将 DolphinDB 上的复杂指标计算能力无缝切换到 GPU 算力平台,以提升计算性能 | medium |
| Shark 最新版本 | 主要功能 | 提供两个主要功能:因子挖掘和因子计算 | high |
| Shark 因子挖掘功能 | 方法 | 使用遗传算法从历史金融数据中提取有效因子 | high |
| Shark 因子挖掘功能 | 效果/价值主张 | 提高金融数据分析的质量和效率 | low |
| Shark 因子计算功能 | 目标领域与能力 | 针对金融领域,提供丰富的函数库,为大规模金融数据分析与处理提供完整解决方案 | medium |
| DolphinDB | 合作/计划加入 | 自 2023 年正式加入 NVIDIA 初创加速计划(NVIDIA Inception) | high |
| Shark 异构计算平台因子挖掘算法 | 加速方式 | 利用 NVIDIA RAPIDS 加速因子挖掘算法运行效率 | medium |
| Shark 因子挖掘效率 | 提升幅度 | 提升 2 - 10 倍 | high |
| Shark 因子计算 | 实现基础 | 基于 NVIDIA cuDF 实现因子高效计算,并减少开发成本、缩短开发周期 | medium |
| RAPIDS RMM | 性质与接口 | 开源的内存/显存管理库,提供 C++ 和 Python 接口 | high |
| RAPIDS RMM | 相对原生分配释放操作的优势 | 相比 cuMalloc、cuFree 等操作具有更好的性能和灵活性 | medium |
| RAPIDS libcudf | 性质 | 基于 GPU 的 C++ DataFrame 库 | high |
| RAPIDS libcudf | 提供能力 | 提供基础数据结构,并内置基础的函数算子 | high |
| Shark 因子挖掘(遗传算法计算过程) | 性能瓶颈原因 | 会频繁创建和释放临时空间存储中间结果;直接使用原生 CUDA C 显存分配/释放接口会严重降低执行效率 | high |
| CPU 函数迁移至 GPU(用于 Shark 因子计算) | 开发成本/周期问题 | 若从零迁移需要在 GPU 重新实现底层数据结构与基础计算函数,导致开发周期延长、开发成本增加 | high |
| DolphinDB 开发团队与 NVIDIA 团队及 RAPIDS 开发团队 | 合作方案 | 利用 RAPIDS RMM 解决因子挖掘频繁申请/释放显存的性能问题;基于 RAPIDS libcudf 二次开发实现因子计算,以缩短开发周期、降低开发成本 | high |
| Shark 因子挖掘 | 公式生成特征 | 通过遗传算法随机生成海量因子计算公式;公式长度与参数数量不一,计算时需频繁申请与释放临时空间存储中间结果 | high |
| RMM 在 Shark 因子挖掘中的使用方式 | 实现手段 | 通过使用 RMM 对显存进行池化,实现对中间结果显存的高效分配、释放和重用 | high |
| Shark | 用户输入与执行方式 | 支持用户输入自定义公式,并自动转换为计算图,在 GPU 完成计算以加快数据分析和处理效率 | medium |
| 将 DolphinDB 计算函数从零迁移至 Shark(GPU) | 需要实现的基础设施 | 需要在 GPU 构建 array、table 等底层数据结构,并实现大量基础计算函数 | high |
| DolphinDB 开发团队 | 技术选型 | 决定基于 RAPIDS libcudf 进行二次开发,复用 cuDF 的 column、table 等底层数据结构 | high |
| cuDF | 被用于迁移的框架能力 | 借助 cuDF 的 groupby 和 rolling 框架完成时序算子与横截面算子迁移,只需完成算子核心计算逻辑 | high |
| 基于 cuDF 二次开发的迁移方式 | 效果 | 极大提升开发效率,降低开发成本 | medium |
| RMM vs 原生 CUDA 显存分配 API(Shark 因子挖掘) | 最高加速比 | 最高可达到 10 倍 | high |
| 图表描述(折线图) | 对比内容 | 对比不同数据规模下 RMM 显存管理库与原生 CUDA 显存分配 API 在因子挖掘任务中的执行时间;表数据量增加时原生 API 执行时间大幅上升,而 RMM 池化后效率显著提升 | medium |
| Shark(GPU)vs 传统 SQL(CPU)在因子计算中的性能 | 测试数据规模 | 1000 个 group,每个 group 有 10 万行数据;采用分组方式计算算子 | high |
| Shark(GPU)vs CPU 的总体耗时(含拷贝时间) | 加速幅度 | 基本达到了一个数量级的加速比 | medium |
| 图表描述(柱状图) | 对比算子 | 对比 mpercentile、mskew、cumavg 等金融算子在 Shark(GPU) 与传统 SQL(CPU) 下的耗时(含数据拷贝),GPU 耗时显著低于 CPU,基本实现一个数量级加速 | medium |
| Shark 因子挖掘效率(结论段) | 提升幅度 | 提升了 10 倍 | high |
| 基于 cuDF 二次开发的算子实现方式(结论段) | 性能与成本影响 | 只需实现算子核心逻辑即可达到一个数量级加速,并极大降低算子迁移成本 | medium |
| 技能认证特训营第二期 | 报名链接 | https://www.qingsuyun.com/h5/e/217471/5/ | high |