【问题标题】:How much overhead is there per partition when loading dask_cudf partitions into GPU memory?将 dask_cudf 分区加载到 GPU 内存时,每个分区有多少开销?
【发布时间】:2019-02-14 18:41:07
【问题描述】:

PCIE 总线带宽延迟会限制应用程序应如何以及何时将数据复制到 GPU 和从 GPU 复制数据。

直接使用 cuDF 时,我可以有效地将一大块数据移动到单个 DataFrame 中。

当使用 dask_cudf 对我的数据帧进行分区时,Dask 是否一次将一个分区复制到 GPU 内存中?分批?如果是这样,多个复制操作而不是单个更大的副本是否会产生大量开销?

【问题讨论】:

    标签: dask rapids cudf


    【解决方案1】:

    这可能取决于您使用的调度程序。截至 2019 年 2 月 19 日,dask-cudf 默认使用单线程调度程序(如果在多个线程中使用,cudf 会出现一段时间的段错误),因此如果您不使用某些 dask.distributed 集群,任何传输都将是顺序的。如果您使用的是 dask.distributed 集群,那么这可能会在您的每个 GPU 上同时发生。

    值得注意的是, dask.dataframe + cudf 并没有做任何特别的 cudf 会做的事情。就好像您在一个 for 循环中调用了许多 cudf 调用,或者在每个 GPU 中调用了一个 for 循环,具体取决于上面的调度程序选择。

    免责声明:cudf 和 dask-cudf 的变化很大。未来的读者可能应该在相信这个答案之前检查当前的文档。

    【讨论】:

      猜你喜欢
      • 2016-07-19
      • 1970-01-01
      • 2017-08-07
      • 2016-12-24
      • 2020-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-19
      相关资源
      最近更新 更多