DjV*_*asu 5 parallel-processing gpu machine-learning dask rapids
我想了解 dask 和 Rapids 之间的区别是什么,rapids 提供哪些 dask 没有的好处。
Rapids 内部是否使用 dask 代码?如果是这样,那么为什么我们有 dask,因为即使 dask 也可以与 GPU 交互。
Jac*_*son 11
Dask是一个 Python 库,它支持一些流行的 Python 库以及自定义函数的核心并行和分发。
以熊猫为例。Pandas 是一个流行的库,用于在 Python 中处理数据帧。但是它是单线程的,您正在处理的数据帧必须适合内存。
Dask 有一个名为的子包dask.dataframe,它遵循与 Pandas 大部分相同的 API,而是将您的 Dataframe 分解为可以并行操作的分区,并且可以在内存中交换。Dask 在底层使用 Pandas,因此每个分区都是一个有效的 Pandas Dataframe。
整个 Dask Dataframe 可以横向扩展并使用多个内核或多台机器。
RAPIDS是 GPU 加速 Python 库的集合,这些库遵循其他流行 Python 包的 API。
为了继续我们的 Pandas 主题,RAPIDS 有一个名为cuDF的包,它有很多与 Pandas 相同的 API。然而,cuDF 将数据帧存储在 GPU 内存中并使用 GPU 执行计算。
由于 GPU 可以加速计算,这可以为您的 Dataframe 操作带来性能优势,并使您能够扩展工作流程。
RAPIDS 和 Dask 也一起工作,因此 Dask 被认为是 RAPIDS 的一个组件。因此,与其拥有由单个 Pandas 数据帧组成的 Dask 数据帧,不如让一个由 cuDF 数据帧组成。这是可能的,因为它们遵循相同的 API。
这样,你既可以规模达通过使用GPU,并向外扩展使用多台计算机上多个GPU。
小智 5
Dask 提供了分配作业的能力。Dask 可以水平(多台机器)和垂直(同一台机器)扩展。
RAPIDS 提供了一组 GPU 加速的 PyData API。Pandas (cuDF)、Scikit-learn (cuML)、NumPy (CuPy) 等均通过 RAPIDS 进行 GPU 加速。这意味着您可以使用已经针对这些 API 编写的代码,只需交换 RAPIDS 库即可从 GPU 加速中受益。
当您将 Dask 和 RAPIDS 结合在一起时,您基本上会得到一个可以水平和垂直扩展的框架 (Dask),以及可以利用底层 GPU 的 PyData API (RAPIDS)。
如果您考虑更广泛的解决方案,Dask 可以与 Kubernetes 和 SLURM 等编排工具集成,以便能够在大型环境中提供更好的资源利用率。
| 归档时间: |
|
| 查看次数: |
1097 次 |
| 最近记录: |