文章目录
为什么GPU适合做ETL
图为ACM特征工程比赛运行耗时比较:使用1块GPU(V100)大约比cpu(至强)提升3倍。4块GPU(V100)+UCX提升25倍。
RAPIDS(科学计算体系)
RAPIDS体系结构用于科学计算,应用层介绍如下:
RAPIDS提供cuDF cuIO(类似于pandas调用GPU)、cuML(回归与分类算法GPU计算)、cuGraph(计算图)、DeepLearning(GPU计算框架)、cuxfillter(可视化)五类应用方向。
ETL主要使用的也就是cuDF cuIO(GPU处理大数据。补充:Desk用于多台数据处理)。
cuDF技术栈
cuDF应用层级使用python主流的数据处理的包完成GPU加速。
cuDF使用用例,使用基本与pandas相似,底层调用Cuda加速处理。
cuDF性能
对比Merge、sort、GroupBy三个函数每秒数据处理情况,大数据下GPU在单位时间处理更多数据。
cuIO
cuIO优化读取方式,避免了传统磁盘->内存->显存的方式,采用直接从磁盘->显存的读取方式。从上图看出,使用cuIO大约有1.5倍加速比。
Desk
提供了GPU与GPU交互方式以及多机间的加速。
BATCH ETL流式处理
当下随时随地产生的数据,不能用统一的格式规范,这时提出流的概念,让数据之间没有格式上的显示,处理流程按数据流处理。
数据处理也越来越复杂,每一个处理流程成之为pipeline(多个Job),但不同的pipeline之间也有交差,适应用于计算需求。
Kafka是分布式数据处理平台,将用户端与数据处理后端隔离,由Kafka平台管理多个pipeline,更多为数据实时处理。
上图为流式处理格式信息
弹性处理、科学计算平台、分布式计算
三大件
STREAMZ
STREAMZ 用于管理pipeline,处理数据存储到Kafka.
cuStreamz
基于Streamz,提出用于GPU计算套件。
如何使用RAPIDS
总结
NVIDIA提出一种用于ETL(Extract-Transform-Load,数据仓储技术)计算的技术RAPIDS,优势在于使用具有大量多线程处理的GPU处理数据,较比于CPU性能有较大的提升;结合当下主流数据处理工具,并对流行的库进行使用迁移,方便用户使用。