我正在对使用tpch-dbgen生成的CSV运行一些sql查询。为了简单起见,我使用一个线程/任务来运行它,并查看时间线中的间隙,如所附图像所示。是磁盘操作吗?这种开销能以某种方式得到放松或优化吗?我怎么能确定那里到底发生了什么?
档案器时间轴
这可能是在GPU处理之前缓冲分布式文件系统中的文件输入,以及Spark压缩和将任务输出写入磁盘作为shuffle的一部分的组合(尚不清楚该查询是否具有所示配置文件部分的shuffle(。
RAPID加速器和cudf jar中都有一些Java级别的NVTX范围,可以帮助提供更多可见性。添加
--conf spark.executor.extraJavaOptions="-Dai.rapids.cudf.nvtx.enabled=true"
到Spark命令行以启用这些NVTX范围,这些范围应显示在收集的GPU配置文件中。
另请参阅https://nvidia.github.io/spark-rapids/docs/tuning-guide.html有关为Apache Spark调优RAPID加速器的提示。