首页 > 解决方案 > Apache Spark 3 是否支持 Spark RDD 的 GPU 使用?

问题描述

我目前正在尝试使用Hail(用 python 和 Scala 编写的基因组分析库)运行基因组分析管道。最近,Apache Spark 3 发布,它支持 GPU 使用。

我尝试使用spark-rapids库启动带有 gpu 节点的本地 slurm 集群。我能够初始化集群。但是,当我尝试运行冰雹任务时,执行者不断被杀死。

在 Hail 论坛上查询时,我得到的回复是

那是 Spark-SQL 的 GPU 代码生成器,Hail 不使用任何 Spark-SQL 接口,仅使用 RDD 接口。

那么,Spark3 不支持 RDD 接口使用 GPU 吗?

标签: apache-sparkgpurddrapidsspark3

解决方案


目前,spark-rapids 不支持 RDD 接口使用 GPU。

来源:链接

Apache Spark 3.0+ 允许用户提供一个插件来替代 SQL 和 DataFrame 操作的后端。这不需要用户更改 API。该插件将用 GPU 加速版本替换它支持的 SQL 操作。如果不支持某个操作,它将回退到使用 Spark CPU 版本。请注意,该插件无法加速直接操作 RDD 的操作。

在这里,来自 spark-rapids 团队的回答

来源:链接

目前我们不支持在 GPU 上运行 RDD API。我们只支持 SQL/Dataframe API,即使那样也只支持一部分操作符。这是因为我们正在将单个 Catalyst 运算符转换为支持 GPU 的等效运算符。我希望能够支持 RDD API,但这需要我们能够获取任意 java、scala 和 python 代码并在 GPU 上运行它。我们正在研究尝试完成其中一些的方法,但现在很难做到。对于像 Hail 这样使用 python 作为 API 的库来说尤其如此,但数据分析是在 C/C++ 中完成的。


推荐阅读