Quiver:单机多卡GNN训练加速系统

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 您公司的logo Quiver: 分布式高性能图学习系统 袁秀龙 清华大学 Zeyuan Tan, Luo Mai, 爱丁堡大学 Guo Li, Peter Pietzuch 帝国理工学院 阿里巴巴 1
2. 目录 CONTENT 01 为什么我们需要一 个高性能图引擎 03 02 Quiver单机版本的设 计与性能 04 Quiver分布式的扩展 总结与展望 您公司的logo 2
3. 您公司的logo 01 为什么我们需要一个高性能图引擎 3
4. 为什么我们需要一个高性能的图引擎 机器学习系统 = 数据模块 + 计算模块 数据模块=数据IO + 数据预处理 tf.data pytorch.dataloader MindData 计算模块= Tensor计算 + 自动微分 TensorFlow Pytorch MindSpore 您公司的logo 4
5. 为什么我们需要一个高性能的图引擎 图机器学习系统 = 图引擎 + 图上的传播计算 图引擎=图数据管理 + 图采样+图 特征拉取+其他预处理 计算模块= 基于消息传递的Tensor计算 + 自动微分 您公司的logo 5
6. 为什么我们需要一个高性能的图引擎 计算模块可以在现有的Tensor计算引擎上构建 DGL架构[1] 您公司的logo 6
7. 为什么我们需要一个高性能的图引擎 图数据模块面临着 数百倍于 常规机器学习数据预处 理所面临的IO压力,导致数据预处理时间更长。 常规机器学习数据预处理任务 图机器学习数据预处理任务 图结构 简单 复杂 图拓扑数据 小(一个进程一份拓扑结构数据) 大(一个机器节点一份拓扑结构 数据) 图采样 简单: 点采样/边采样( 如正负样本对 ) 复杂: 子图采样 特征拉取I/O次数 一个样本平均约为一次I/O 一个样本(子图)约为|V|次IO 您公司的logo 7
8. 为什么我们需要一个高性能的图引擎 图机器学习模型目前较小,计算时间较短,更加重了对数据处 理侧的压力, GPU利用率较低。 一个batch的数据最大 可达 587MB 图采样 CPU图特征拉取 H2D传输 64ms 13ms 36ms PyG官方Reddit示例[2]: BatchSize=1024, 节点特征维度=602, 每个子图节点个数 <=250 您公司的logo GPU计算 5ms GPU利用率 < 35% 8
9. 为什么我们需要一个高性能的图引擎 ➢ 图采样复杂且耗时较长 ➢ 图特征聚合对内存带宽和CPU到GPU的传输带宽负载较大,经常成为性能瓶颈 ➢ 图模型小计算相对较快,对数据侧压力较大,GPU显存占用和GPU利用率均比较低 您公司的logo 9
10. 您公司的logo 02 Quiver在GPU服务器的设计 10
11. 单机GNN的训练性能值得被挖掘 1. 512G/1T内存的机器并不少见,单机内存能够支撑绝大部分规模的图数据上的模型训练和 推理:PinSage[3]/Pixie[4]。 1. NVMe SSD技术的发展使得硬盘的随机读取速度快过常规网络传输速度。 1. 单机的方案相比较分布式的方案往往更高效、更经济。 [5] 数据来源于AWS官网[https://aws.amazon.com/cn/ec2/instance-types/p4/] 您公司的logo 11
12. Quiver在单机上的一些设计和实现 一个batch的数据最大可 达 587MB 常规方案1 CPU图采样 64ms CPU图特征拉取 13ms H2D传输 36ms CPU图采样 CPU图特征拉取 64ms 13ms CPU图采样 CPU图特征拉取 H2D传输 64ms 13ms 36ms CPU图采样 CPU图特征拉取 64ms 13ms 您公司的logo GPU计算 5ms GPU计算 5ms 12
13. Quiver在单机上的一些设计和实现 常规方案2 CPU图采样 64ms CPU图采样 64ms CPU图采样 64ms CPU图采样 64ms CPU图特征拉取 13ms H2D传输 36ms GPU计算 5ms CPU图特征拉取 13ms CPU图特征拉取 13ms H2D传输 36ms GPU计算 5ms CPU图特征拉取 13ms 问题: ➢ 采样和特征拉取均为CPU密集型操作,多卡训练时由于CPU成为瓶颈而导致扩展性差(p4d: 6 cores/GPU) ➢ CPU到GPU的数据拷贝的时间消耗无法优化 您公司的logo 13
14. Quiver在单机上的一些设计和实现 一个batch的数据最大可 达 587MB 常规方案2 CPU图采样 64ms GPU图采样 CPU图特征拉取 13ms GPU图特征拉取 H2D传输 36ms H2D传输 36ms GPU计算 5ms GPU计算 5ms 全部数据需要放到GPU上,GPU显存小,只能处理小图 您公司的logo 14
15. Quiver在单机上的一些设计和实现 Quiver在单机器上的整体设计想法 图机器学习模型训练占用显存少,显存利用率低 充分利用起来GPU Server中的多层次访问吞吐关系 和图学习模型训练过程中的数据访问特性将GPU利 用起来。 您公司的logo 15
16. Quiver在单机上的一些设计和实现 —— UVA 采样 采样操作:对内存负载不高,但由于有大量的随机访问,使得每一次的内存访问延迟较高。 UVA采样:GPU通过PCIe访问CPU内存相比较CPU直接访问内存延迟更高。但通过大量的GPU线程并 行使得延迟可以被良好的掩盖。 您公司的logo 16
17. Quiver在单机上的一些设计和实现 —— UVA 采样 ➢ 性能相比较单CPU采样有约20X的性能提升 ➢ 不占用CPU,多卡训练时CPU不会成为瓶颈 ➢ 可以处理远大于GPU显存的图 您公司的logo 17
18. Quiver-UVA Feature Allocation 1.真实图的访问大多具有幂律分布特性,是一个典型的缓存友好型访问特性 2.一个AI Server的典型访问吞吐层级有如下关系: GPU Local > D2D With NVLink > D2H With Pinned Buffer >D2D Without NVLink>(H2H, D2H With Pageable Buffer) > Disk Device GPU0 GPU1 CPU GPU0 ~660GB/s - - GPU1 ~50GB/s ~660GB/s - CPU Pageable: ~13GB/s Pinned: ~26GB/s Pageable: ~13GB/s Pinned: ~26GB/s ~13GB/s 您公司的logo 18
19. Quiver-Adaptive Data Allocation 当机器上有NVLink高速互联时: GPU Local > D2D With NVLink > D2H With Pinned Buffer 您公司的logo 19
20. Quiver-UVA Feature Allocation 当机器上没有NVLink高速互联时: GPU Local > D2D With NVLink > D2H With Pinned Buffer 您公司的logo 20
21. Quiver-UVA Feature Allocation 7x 吞吐 您公司的logo 21
22. Quiver-端到端训练性能数据 性能收益来源: ➢ 采样更快,采样扩展性更好 ➢ 特征聚合吞吐更高 您公司的logo 22
23. Quiver-API与单卡训练使用示例 PyG用户只需要修改10余行代码即可享受到Quiver带来的性能加速 您公司的logo 23
24. Quiver-API与多卡使用示例 实现了基于共享内存的IPC机制,可以作为进程间参数传递,方便启动DDP训练 您公司的logo 24
25. 您公司的logo 03 Quiver在多机下的扩展 25
26. 分布式情况下图机器学习模型训练的挑战 单机下的图机器学习模型训练 您公司的logo 26
27. 分布式情况下图机器学习模型训练的挑战 核心挑战:图切分带来的网络通信问题 Server1 Feature Partition1 Server2 Server3 Server4 Feature Partition2 Feature Partition3 Feature Partition4 传输数据量大 Server4 Server1 图采样 Server3 图特征拉取 机器需要>10GB/s的 网络带宽来满足训 练 H2D传输 GPU训练 Train on Server1 Server2 您公司的logo 27
28. 分布式情况下图机器学习模型训练的挑战 常见解决方案: Quiver在分布式下的 探索方向 ➢ 优化现有的训练流程 ➢ 通过更好的切分算法来确保大部分数据访问都在本地命中 ➢ 利用图的访问不均匀特性来做良好的缓存策略 ➢ 利用RDMA等技术加速网络通信 ➢ 寻找对分布式更友好的训练策略 ➢ 通过预先进行数据预处理落盘,将图数据训练流程退化到常规数据训练流程: AGL[6], SIGN[7] ➢ 通过划分Cluster,训练的数据访问和采样局限在Cluster内部,杜绝跨Cluster的通信: ClusterGCN[8] 您公司的logo 28
29. Quiver-Adaptive Feature Allocation and Cache 拓扑的切分: Random, Metis, V-Cut, E-Cut… 图数据的切分 特征的切分: Random, 与图切分的结果保持一致 您公司的logo 29
30. Quiver-Adaptive Feature Allocation and Cache 随机划分实际用的更多 拓扑的切分: Random, Metis, V-Cut, E-Cut… 图数据的切分 特征的切分: Random, 与图切分的结果保持一致 Quiver更关注特征的切分 您公司的logo 30
31. Quiver-Adaptive Feature Allocation and Cache 观察: ➢ 从训练开始到训练结束,每个机器上训练的种子节点保持不变。 意味着: ➢ 从训练开始到训练结束,每一个Epoch内每个机器对特征数据的访 问频次特性是固定的 而: ➢ 在给定种子节点的情况下,对特征数据访问频次特性由采样算法决 定 您公司的logo 31
32. Quiver-Adaptive Feature Allocation and Cache 核心想法:基于全局的每台机器对节点特征的访问热度图矩阵决定特征 数据在各个机器上的切分和冗余存储。 两机训练时,每台机器上全图的所有节点特征数据的访问热度图 您公司的logo 32
33. Quiver-Adaptive Feature Allocation and Cache 更高的本地特征数据命中率 您公司的logo 33
34. Quiver-端到端性能表现 您公司的logo 34
35. 您公司的logo 04 Quiver项目总结与未来展望 35
36. Quiver-总结与未来展望 总结 ➢ 利用UVA采样和UVA的特征聚合来提升GPU的利用率,极大的提升了单机上训练的性 能。 ➢ 分布式情况下,基于应用层的访问信息来决定数据的排布,在一些数据集下极大的 提升了本地命中率,减少大量网络开销。 展望 ➢ Quiver致力于为图学习社区提供统一、高效的图引擎,让算法同学专注到模型本身 的构建而无需担心性能问题。 ➢ 非常欢迎对Quiver感兴趣的同学在会后进行交流与合作。 您公司的logo 36
37. 非常感谢您的观看 Project link 37

首页 - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.3. UTC+08:00, 2024-11-25 08:14
浙ICP备14020137号-1 $访客地图$