Dask on GPUs

2021/04/08 14:28
阅读数 84

Dask on GPUs

Dask 可以分布数据和计算到多块 GPUs, 不仅在单个系统换支持集群。Dask 集成了、 RAPIDS cuDF, XGBoost, 和 RAPIDS cuML ,用于 GPU加速的数据分析和机器学习。

Dataframe 和 ETL 集成

RAPIDS cuDF library 提供了GPU支持的 dataframe class,实现了流行的pandas API。包括超高性能的函数用于载入 CSV, JSON, ORC, Parquet 以及其他的文件格式直接到 GPU 内存, 减少了很多数据处理任务的瓶颈。cuDF 提供多种函数支持 GPU-accelerated ETL, 如data subsetting, transformations, one-hot encoding, 等等。RAPIDS team 维护了 dask-cudf library 包括使用 Dask 和 cuDF的帮助工具。

XGBoost 集成

XGBoost, 流行的开源machine learning library for gradient boosting, 现在包含集成化的 Dask支持。用户可以使用Dask的标准数据结构跨节点分割数据, 构建 一个DMatrix 在每一个 GPU 使用 xgboost.dask.create_worker_dmatrix, 通过xgboost.dask.run来开始训练。查看 XGBoost dask documentation 或者Dask+XGBoost GPU example code 了解细节。

新手可以通过 XGBoost page10 Minutes to Dask-XGBoost guide 来快速开始。

整合其它 ML Algorithms

对于其他的machine learning 工作使用 GPU, 这个 cuML library 提供访问 RAPIDS cuML package 通过 Dask。RAPIDS cuML 实现了常用的machine learning algorithms, 包括 clustering, dimensionality reduction, 以及 regression approaches, 通过高性能的基于 GPU的实现,提供 100x倍以上于CPU的速度提升。 cuML 复刻了scikit-learn API, 能跟 Dask之类包含 scikit-learn 支持的工作集成的很好。目前, dask-cuml 支持 分布式的聚类和回归算法,新的算法也在逐步地加入进去。

例子Notebooks

这些 RAPIDS Notebooks 扩展残酷包含了几个例子,使用 Dask 到分布式的、GPU加速的计算。是一个很好的起点。

  • Dask shows how to get started with Dask using basic Python primitives like integers and strings. Go to notebook
  • XGBoost with RAPIDS shows the acceleration one can gain by using GPUs with XGBoost in RAPIDS. Go to notebook
  • Dask+cuML shows a simple example of how to get started with distributed machine learning. Go to notebook
  • The NYC Taxi End-to-End notebook uses trip data to predict New York City taxi fares (a regression problem). Go to notebook

Dask Libraries

Dask 提供高级并行算法用于数据科学,可以在流行的 Python tools提供性能的伸缩。

User Interfaces

Dask collections, 包括 DataFrame, Array, Delayed, and Futures, provide underlying parallel computing machinery to scale workloads. All come with a purpose-built set of parallel algorithms and programming style.
Learn more

Machine Learning

Dask-ML provides scalable machine learning in Python using Dask with popular machine learning libraries, such as scikit-learn.
Learn more

Parallel Execution

Dask uses task graphs to optimize and execute work in parallel. After Dask generates task graphs, it executes them on parallel hardware with a distributed task scheduler.
Learn more

部署

Dask 集成到现有的集群工具之中,如 Kubernetes 和 YARN (Hadoop/Spark) 以及 HPC schedulers 如 SLURM, PBS, 和 LSF 使负载可伸缩,减小10倍以上的计算负载。
Learn more

可视化交互

 Dask 交互面板 提供实时的反馈,在计算中指示代码中的计算热点。这可以帮助硬件更有效滴调度通讯、计算等的负载均衡。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
0 收藏
0
分享
返回顶部
顶部