(19)中华 人民共和国 国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202111415792.5
(22)申请日 2021.11.25
(71)申请人 上海交通大 学
地址 200240 上海市闵行区东川路80 0号
(72)发明人 姚建国 陈悦
(74)专利代理 机构 上海汉声知识产权代理有限
公司 3123 6
代理人 胡晶
(51)Int.Cl.
G06N 20/00(2019.01)
G06F 16/901(2019.01)
G06F 9/50(2006.01)
(54)发明名称
基于Optane DIMM的大规模图嵌入训练方法
及系统
(57)摘要
本发明提供了一种基于Optane DIMM的大规
模图嵌入训练方法及系统, 包括: 原始图处理步
骤: 对原始图进行处理, 生成DRAM能够加载的图
数据; 数据预处理步骤: 将图数据根据特征进行
两层图分割, 将完整图拆分成子图, 并存储在磁
盘中, 使得子图能够加载入GP U进行分区训练; 图
训练步骤: 根据不同介质的访存特性, 将训练所
用的图数据存储在不同的物理介质中, 根据训练
过程中所依赖数据的不同特性来切割算法, 采用
CPU和GPU分工训练, 平衡CPU计算、 GPU计算以及
CPU‑GPU通信三者的开销。 本发明根据图的特性
进行高质量的两层图分割, 将大图转化为子图,
存储在磁盘中, 从而子图能够加载入GPU进行分
区训练。
权利要求书2页 说明书9页 附图1页
CN 114118443 A
2022.03.01
CN 114118443 A
1.一种基于Optane DIMM的大规模图嵌入训练方法, 其特 征在于, 包括:
原始图处理步骤: 对原 始图进行处 理, 生成DRAM能够加载的图数据;
数据预处理步骤: 将图数据根据特征进行两层图分割, 将完整图拆分成子图, 并存储在
磁盘中, 使得子图能够加载入GPU 进行分区训练;
图训练步骤: 根据不同介质的访存特性, 将训练所用的图数据存储在不同的物理介质
中, 根据训练过程中所依赖数据的不同特性来切割 算法, 采用CPU和GPU分工训练, 平衡CPU
计算、 GPU计算以及CPU ‑GPU通信三 者的开销。
2.根据权利要求1所述的基于Optane DIMM的大规模图嵌入训练方法, 其特征在于: 所
述原始图处理步骤包括以下子步骤:
S1: 初始化大小为hash_table_size的哈希 表, 用于存 储顶点名字 到顶点ID的映射;
S2: 进入循环, 循环次数为原 始图列表的大小;
S3: 每次循环从原 始图中读入一条边, 由顶点v_name,目标顶点u_name组成;
S4: 从哈希表中查找v_name是否已经出现过, 若是, 则返回映射后的v_id, 若否, 则调用
hash_table.Ad dVertex(name_v,count_num_ver tices)方法, 插 入新的顶点;
S5: 若调用hash_table.AddVertex(name_v,count_num_vertices), 首先创建新的顶
点, 并加入顶点集合vertices,然后计数器count_num_vertices自增一; 如果count_num_
vertices超过了现有ver tices的最大容 量, vertices将会自动扩容;
S6: 循环直到找到哈希 表的空位, 在哈希 表中插入顶点名字 到ID的映射关系;
S7: 根据S4 ‑S6中的步骤处 理u_name;
S8: 将映射后的边写入输出文件。
3.根据权利要求1所述的基于Optane DIMM的大规模图嵌入训练方法, 其特征在于: 所
述图数据是以文件的形式存储在磁盘上, 数据格式为source_vertex_id,destination_
vertex_id; 对于无向图, 同时存储source_vertex_id,destination_vertex_id;
destination_vertex_id,source_ver tex_id两条边 来表示。
4.根据权利要求1所述的基于Optane DIMM的大规模图嵌入训练方法, 其特征在于: 所
述图数据的拆分包括:
‑采用边分割策略: 将图数据按照点划分, 将边隔开, 划分子图数据为GPU数量, 对于单
个GPU的设备, 则不进行边分割;
‑采用点分割策略: 将图数据按照边划分, 划分子图数量根据GPU内存大小决定, 当子图
能够完整载入GPU时, 则不进行点分割策略。
5.根据权利要求1所述的基于Optane DIMM的大规模图嵌入训练方法, 其特征在于: 所
述CPU执行负采样和割边训练操作, 所述GPU 执行正采样、 正样 本训练和负样本训练操作, 所
述CPU‑GPU通信采用PCI负载 执行。
6.根据权利要求5所述的基于Optane DIMM的大规模图嵌入训练方法, 其特征在于: 所
述CPU任务具体包括:
数据加载: 加载训练所需的数据, 包括图结构数据和图嵌入数据;
所述图结构数据从磁盘中加载到Optane DIMM中, 并抽象出元数据结构Graph, 指向
Optane DIMM中的具体数据, 元 数据存储在DRAM中;
所述图嵌入数据在DRAM中分配内存并初始化, 抽象出元数据结构Embeddin g, 指向具体权 利 要 求 书 1/2 页
2
CN 114118443 A
2数据, 存储在DRAM中;
负采样: 系统开启FIRST_PARTITION_NUM数量的线程, 每个线程维护NEG_SAMPLE_POOL_
NUM块采样池, 采样池大小为 NEG_SAMPLE_PO OL_SIZE, 不同线程并行负采样;
割边训练: 针对边分割过程中产生的每条割边, 利用CPU进行训练; CPU开启CROSS_
EDGE_TRAI N_THREAD条线程, 每条线程负责部分切边的训练
任务调度: 第一层子图由不同GPU并行训练, 不同GPU之间数据隔离, 无数据通信开销;
第二层子图串行训练;
图嵌入评价: 利用生成的节点嵌入, 运行不同类型的机器学习任务, 评估微观f1或宏观
f1, 与其他解决方案进行比较。
7.根据权利要求1所述的基于Optane DIMM的大规模图嵌入训练方法, 其特征在于: 所
述负采样过程中, 对每个小采样池的采样策略包括: 统计整图点的度和与子图点的度和, 根
据子图度和占整图度和的比例决定每 个子图采样数, 满足以下 条件:
subgraphi_degree_num/graph_degre e_num
=subgraphi_neg_sam_num/NEG_SAMPLE_PO OL_SIZE。
8.根据权利要求5所述的基于Optane DIMM的大规模图嵌入训练方法, 其特征在于: 所
述GPU任务包括:
正采样: 对于每一条边, 通过随机游走的方式进行正采样, 输入为顶点vid, 输出为正采
样边列表;
训练: 对于 子图中的每一条边, 利用GPU 进行训练。
9.根据权利要求5所述的基于Optane DIMM的大规模图嵌入训练方法, 其特征在于: 所
述PCI负载任务包括:
图结构数据传输:通过PCIe协议将图结构数据由Optane DIMM拷贝到GPU 进行计算;
负样本传输:通过PCIe协议将图结构数据由主机DRAM拷贝到GPU 进行计算;
嵌入传输:通过PCIe协议将图结构数据由主机DRAM拷贝到GPU 进行计算;
嵌入传输:通过PCIe协议将嵌入数据由GPU拷贝回主机DRAM 。
10.一种基于Optane DIMM的大规模图嵌入训练系统, 其特 征在于, 包括:
原始图处理模块: 对原 始图进行处 理, 生成DRAM能够加载的图数据;
数据预处理模块: 将图数据根据特征进行两层图分割, 将完整图拆分成子图, 并存储在
磁盘中, 使得子图能够加载入GPU 进行分区训练;
图训练模块: 根据不同介质的访存特性, 将训练所用的图数据存储在不同的物理介质
中, 根据训练过程中所依赖数据的不同特性来切割 算法, 采用CPU和GPU分工训练, 平衡CPU
计算、 GPU计算以及CPU ‑GPU通信三 者的开销。权 利 要 求 书 2/2 页
3
CN 114118443 A
3
专利 基于Optane DIMM的大规模图嵌入训练方法及系统
文档预览
中文文档
13 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共13页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 人生无常 于 2024-03-19 01:21:18上传分享