用于联邦学习的计算任务加速处理方法、装置及设备.pdf

上传人:奻奴 文档编号:10117184 上传时间:2021-06-04 格式:PDF 页数:24 大小:892.12KB
收藏 版权申诉 举报 下载
用于联邦学习的计算任务加速处理方法、装置及设备.pdf_第1页
第1页 / 共24页
用于联邦学习的计算任务加速处理方法、装置及设备.pdf_第2页
第2页 / 共24页
用于联邦学习的计算任务加速处理方法、装置及设备.pdf_第3页
第3页 / 共24页
文档描述:

《用于联邦学习的计算任务加速处理方法、装置及设备.pdf》由会员分享,可在线阅读,更多相关《用于联邦学习的计算任务加速处理方法、装置及设备.pdf(24页完成版)》请在专利查询网上搜索。

1、(19)中华人民共和国国家知识产权局 (12)发明专利申请 (10)申请公布号 (43)申请公布日 (21)申请号 202011131111.8 (22)申请日 2020.10.21 (71)申请人 深圳致星科技有限公司 地址 518038 广东省深圳市南山区粤海街 道高新区社区白石路3609号深圳湾科 技生态园二区9栋A2405 申请人 深圳前海微众银行股份有限公司 (72)发明人 杨林彬胡水海陈天健黄启军 陈瑞钦陈振南 (74)专利代理机构 北京永新同创知识产权代理 有限公司 11376 代理人 林锦辉刘景峰 (51)Int.Cl. G06F 9/46(2006.01) G06F 9/50。

2、(2006.01) G06F 21/60(2013.01) G06N 3/04(2006.01) G06N 3/08(2006.01) (54)发明名称 用于联邦学习的计算任务加速处理方法、 装 置及设备 (57)摘要 本说明书的实施例提供用于实现计算任务 加速处理的方法及装置。 在该方法中, 从外部设 备接收计算任务和计算数据; 根据计算任务的操 作类型和计算数据的数据大小确定计算任务的 并行计算方案, 所述并行计算方案包括并行计算 分块的数目以及各个并行计算分块的分块线程 资源分配方案, 各个并行计算分块内利用所分配 的多个线程来实现并行计算。 然后, 根据分块线 程资源分配方案来调用并行。

3、计算架构执行并行 计算得到计算结果; 并且将计算结果提供给外部 设备。 利用该方法, 可以使用基于分块并行和线 程并行的双层并行处理方案来高效地实现计算 任务并行处理。 权利要求书3页 说明书13页 附图7页 CN 112148437 A 2020.12.29 CN 112148437 A 1.一种用于实现联邦学习中的计算任务加速处理的方法, 所述方法由具有并行计算架 构的硬件加速设备执行, 所述方法包括: 从算法实现层接收计算任务和计算数据; 根据所述计算任务的操作类型和所述计算数据的数据大小确定所述计算任务的并行 计算方案, 所述并行计算方案包括并行计算分块的数目以及各个并行计算分块的分块。

4、线程 资源分配方案, 各个并行计算分块内利用所分配的多个线程来实现并行计算; 根据所述分块线程资源分配方案来调用所述并行计算架构执行并行计算得到计算结 果; 以及 将所述计算结果提供给所述算法实现层。 2.如权利要求1所述的方法, 其中, 所述计算数据为大数矩阵, 各个并行计算分块之间 执行矩阵级并行计算, 以及各个并行计算分块内执行元素级并行计算。 3.如权利要求2所述的方法, 其中, 各个并行计算分块的分块线程资源分配方案被组织 为三元组(NumT, a, b), 其中, NumT是元素级并行处理所需的连续线程数量, (a, b)用于映射 结果矩阵中的元素位置。 4.如权利要求3所述的方法。

5、, 其中, 根据所述计算任务的操作类型和所述计算数据确定 所述计算任务的并行计算方案包括: 根据所述计算任务的操作类型和所述计算数据的矩阵大小确定所述计算任务的结果 矩阵大小; 根据所述结果矩阵大小和并行计算分块的最大可分配线程数量, 确定并行计算分块的 可处理结果矩阵分块尺寸; 以及 根据所述结果矩阵大小和所确定出的可处理结果矩阵分块尺寸, 确定并行计算分块的 数目以及各个并行计算分块的分块线程资源分配方案。 5.如权利要求4所述的方法, 其中, NumT根据所述计算数据的大数大小确定。 6.如权利要求1所述的方法, 其中, 所述并行计算架构包括模幂计算引擎和模乘计算引 擎。 7.如权利要求。

6、1到6中任一所述的方法, 其中, 所述计算数据是密文数据。 8.如权利要求7所述的方法, 其中, 所述计算数据被存储为二元组(M,E), 其中, M表示计 算数据的尾数, 以及E表示计算数据的指数, 所述方法还包括: 对所述计算数据进行指数对齐。 9.如权利要求1到6中任一所述的方法, 还包括: 对所接收的计算数据进行同态加密得到密文计算数据, 根据所述分块线程资源来调用所述并行计算架构执行并行计算得到计算结果包括: 根据所述分块线程资源调用所述并行计算架构来基于所述密文计算数据执行并行计 算得到密文计算结果。 10.如权利要求9所述的方法, 其中, 将所述计算结果提供给所述算法实现层包括: 。

7、将所述密文计算结果经过同态解密后提供给所述算法实现层。 11.如权利要求1所述的方法, 其中, 所述硬件加速设备是GPU设备。 12.一种用于实现联邦学习中的计算任务加速处理的装置, 所述装置应用于具有并行 权利要求书 1/3 页 2 CN 112148437 A 2 计算架构的计算设备, 所述装置包括: 接收单元, 从算法实现层接收计算任务和计算数据; 并行计算方案确定单元, 根据所述计算任务的操作类型和所述计算数据的数据大小确 定所述计算任务的并行计算方案, 所述并行计算方案包括并行计算分块的数目以及各个并 行计算分块的分块线程资源分配方案, 各个并行计算分块内利用多个线程来实现并行计 算。

8、; 并行计算单元, 根据所述分块线程资源分配方案来调用所述并行计算架构执行并行计 算得到计算结果; 以及 计算结果提供单元, 将所述计算结果提供给所述算法实现层。 13.如权利要求12所述的装置, 其中, 所述计算数据为大数矩阵, 各个并行计算分块之 间执行矩阵级并行计算, 以及各个并行计算分块内执行元素级并行计算。 14.如权利要求13所述的装置, 其中, 各个并行计算分块的分块线程资源分配方案被组 织为三元组(NumT, a, b), 其中, NumT是元素级并行处理所需的连续线程数量, (a, b)用于映 射结果矩阵中的元素位置。 15.如权利要求14所述的装置, 其中, 所述并行计算方。

9、案确定单元包括: 结果矩阵大小确定模块, 根据所述计算任务的操作类型和所述计算数据的矩阵大小确 定所述计算任务的结果矩阵大小; 可处理分块尺寸确定模块, 根据所述结果矩阵大小和并行计算分块的最大可分配线程 数量, 确定并行计算分块的可处理结果矩阵分块尺寸; 以及 并行计算方案确定模块, 根据所述结果矩阵大小和所确定出的可处理结果矩阵分块尺 寸, 确定并行计算分块数目以及各个并行计算分块的分块线程资源分配方案。 16.如权利要求12所述的装置, 其中, 所述计算数据是密文数据, 以及所述计算数据被 存储为二元组(M,E), 其中, M表示计算数据的尾数, 以及E表示计算数据的指数, 所述装置还包。

10、括: 数据对齐单元, 对所述计算数据进行指数对齐。 17.如权利要求12到16中任一所述的装置, 还包括: 加密单元, 对所接收的计算数据进行同态加密得到密文计算数据, 所述并行计算单元根据所述分块线程资源调用所述并行计算架构来基于所述密文计 算数据执行并行计算得到密文计算结果。 18.如权利要求17所述的装置, 还包括: 解密单元, 对所述密文计算结果进行同态解密, 得到明文计算结果, 所述计算结果提供 单元将所述明文计算结果提供给所述算法实现层。 19.一种联邦学习成员设备, 包括: 前端, 部署有用于实现联邦学习模型的算法实现层; 以及 后台计算系统, 包括如权利要求11到17中任一所述。

11、的装置以及并行计算架构。 20.一种用于联邦学习的方法, 所述方法由联邦学习成员设备执行, 所述方法包括: 响应于接收到联邦学习任务, 在算法实现层对所述联邦学习任务进行解析得到计算任 务和计算任务所需计算数据, 并将所述计算任务和计算数据提供给后台计算系统; 在后台计算系统, 根据所述计算任务的操作类型和所述计算数据的数据大小确定所述 权利要求书 2/3 页 3 CN 112148437 A 3 计算任务的并行计算方案, 所述并行计算方案包括并行计算分块的数目以及各个并行计算 分块的分块线程资源分配方案, 各个并行计算分块内利用所分配的多个线程来进行并行计 算; 根据所述分块线程资源分配方案。

12、来调用所述并行计算架构执行并行计算得到计算结 果; 并且将所述计算结果提供给所述算法实现层; 以及 所述算法实现层根据所述计算结果来确定所述联邦学习任务的处理结果。 21.一种联邦学习系统, 包括: 至少两个如权利要求19所述的联邦学习成员设备。 22.一种计算设备, 包括: 至少一个处理器, 以及 与所述至少一个处理器耦合的存储器, 所述存储器存储指令, 当所述指令被所述至少 一个处理器执行时, 使得所述至少一个处理器执行如权利要求1到11中任一所述的方法。 23.一种机器可读存储介质, 其存储有可执行指令, 所述指令当被执行时使得所述机器 执行如权利要求1到11中任一所述的方法。 权利要求。

13、书 3/3 页 4 CN 112148437 A 4 用于联邦学习的计算任务加速处理方法、 装置及设备 技术领域 0001 本说明书实施例通常涉及联邦学习领域, 尤其涉及用于实现联邦学习中的计算任 务加速处理的方法、 装置及硬件加速设备。 背景技术 0002 在例如联邦学习的应用场景下会遇到计算密集型任务处理。 例如, 在联邦学习过 程中, 各个建模参与方在本地迭代数据, 由此计算例如梯度, 神经网络权值等参数。 这些参 数会被中央协调者获得。 当中央协调者不是完全可以信任时, 就有可能会泄露建模参与方 的隐私。 为了解决数据隐私安全问题, 现有联邦学习框架如FATE, AngelFL等采用了。

14、 Paillier同态加密技术。 在密态环境中, 各个建模参与方将本地迭代出来的模型参数更新 信息加密后发往中央协调者, 中央协调者直接在密文上进行运算而无法知道真实的数据, 从而保证了各个建模参与方不会向中央协调者泄露任何信息。 0003 但是密态计算会使得参与计算的数据发生数据膨胀。 例如, 在采用1024-bit位的 Paillier同态加密后, 一个浮点数的体积会膨胀到2048-bit。 此外, 密态计算还会造成基础 算子的改变。 例如, Paillier同态加密支持的运算包括: 密文+密文, 密文+明文, 以及密文* 明文。 但是这里的加法和乘法实际上分别代表模乘计算和模幂计算。 数。

15、据膨胀和基础算子 改变大大增加了联邦学习过程的计算工作量, 由此使得联邦学习的效率低下。 如何实现联 邦学习中的计算任务加速处理, 成为亟待解决的问题。 发明内容 0004 鉴于上述, 本说明书的实施例提供一种用于实现联邦学习中的计算任务加速处理 的方法、 装置及联邦学习成员设备。 利用该方法及装置, 可以使用基于分块并行和线程并行 的双层并行处理方案来高效地实现联邦学习中的计算任务并行处理。 0005 根据本说明书的实施例的一个方面, 提供一种用于实现联邦学习中的计算任务加 速处理的方法, 所述方法由具有并行计算架构的硬件加速设备执行, 所述方法包括: 从算法 实现层接收计算任务和计算数据;。

16、 根据所述计算任务的操作类型和所述计算数据的数据大 小确定所述计算任务的并行计算方案, 所述并行计算方案包括并行计算分块的数目以及各 个并行计算分块的分块线程资源分配方案, 各个并行计算分块内利用所分配的多个线程来 进行并行计算; 根据所述分块线程资源分配方案来调用所述并行计算架构执行并行计算得 到计算结果; 以及将所述计算结果提供给所述算法实现层。 0006 可选地, 在上述方面的一个示例中, 所述计算数据为大数矩阵, 各个并行计算分块 之间执行矩阵级并行计算, 以及各个并行计算分块内执行元素级并行计算。 0007 可选地, 在上述方面的一个示例中, 各个并行计算分块的分块线程资源分配方案 。

17、被组织为三元组(NumT, a, b), 其中, NumT是元素级并行处理所需的连续线程数量, (a, b)用 于映射结果矩阵中的元素位置。 0008 可选地, 在上述方面的一个示例中, 根据所述计算任务的操作类型和所述计算数 说明书 1/13 页 5 CN 112148437 A 5 据确定所述计算任务的并行计算方案包括: 根据所述计算任务的操作类型和所述计算数据 的矩阵大小确定所述计算任务的结果矩阵大小; 根据所述结果矩阵大小和并行计算分块的 最大可分配线程数量, 确定并行计算分块的可处理结果矩阵分块尺寸; 以及根据所述结果 矩阵大小和所确定出的可处理结果矩阵分块尺寸, 确定并行计算分块的。

18、数目以及各个并行 计算分块的分块线程资源分配方案。 0009 可选地, 在上述方面的一个示例中, NumT根据所述计算数据的大数大小确定。 0010 可选地, 在上述方面的一个示例中, 所述并行计算架构包括模幂计算引擎和模乘 计算引擎。 0011 可选地, 在上述方面的一个示例中, 所述计算数据是密文数据。 0012 可选地, 在上述方面的一个示例中, 所述计算数据被存储为二元组(M,E), 其中, M 表示计算数据的尾数, 以及E表示计算数据的指数, 所述方法还包括: 对所述计算数据进行 指数对齐。 0013 可选地, 在上述方面的一个示例中, 所述方法还包括: 对所接收的计算数据进行同 态。

19、加密得到密文计算数据, 根据所述分块线程资源来调用所述并行计算架构执行并行计算 得到计算结果包括: 根据所述分块线程资源调用所述并行计算架构来基于所述密文计算数 据执行并行计算得到密文计算结果。 0014 可选地, 在上述方面的一个示例中, 将所述计算结果提供给所述算法实现层包括: 将所述密文计算结果经过同态解密后提供给所述算法实现层。 0015 可选地, 在上述方面的一个示例中, 所述硬件加速设备是GPU设备。 0016 根据本说明书的实施例的另一方面, 提供一种用于实现联邦学习中的计算任务加 速处理的装置, 所述装置应用于具有并行计算架构的计算设备, 所述装置包括: 接收单元, 从算法实现。

20、层接收计算任务和计算数据; 并行计算方案确定单元, 根据所述计算任务的操 作类型和所述计算数据的数据大小确定所述计算任务的并行计算方案, 所述并行计算方案 包括并行计算分块的数目以及各个并行计算分块的分块线程资源分配方案, 各个并行计算 分块内利用所分配的多个线程来进行并行计算; 并行计算单元, 根据所述分块线程资源分 配方案来调用所述并行计算架构执行并行计算得到计算结果; 以及计算结果提供单元, 将 所述计算结果提供给所述算法实现层。 0017 可选地, 在上述方面的一个示例中, 所述计算数据为大数矩阵, 各个并行计算分块 之间执行矩阵级并行计算, 以及各个并行计算分块内执行元素级并行计算。。

21、 0018 可选地, 在上述方面的一个示例中, 各个并行计算分块的分块线程资源分配方案 被组织为三元组(NumT, a, b), 其中, NumT是元素级并行处理所需的连续线程数量, (a, b)用 于映射结果矩阵中的元素位置。 0019 可选地, 在上述方面的一个示例中, 所述并行计算方案确定单元包括: 结果矩阵大 小确定模块, 根据所述计算任务的操作类型和所述计算数据的矩阵大小确定所述计算任务 的结果矩阵大小; 可处理分块尺寸确定模块, 根据所述结果矩阵大小和并行计算分块的最 大可分配线程数量, 确定并行计算分块的可处理结果矩阵分块尺寸; 以及并行计算方案确 定模块, 根据所述结果矩阵大小。

22、和所述可处理结果矩阵分块尺寸, 确定并行计算分块的数 目以及各个并行计算分块的分块线程资源分配方案。 0020 可选地, 在上述方面的一个示例中, 所述计算数据是密文数据, 以及所述计算数据 说明书 2/13 页 6 CN 112148437 A 6 被存储为二元组(M,E), 其中, M表示计算数据的尾数, 以及E表示计算数据的指数, 所述装置 还包括: 数据对齐单元, 对所述计算数据进行指数对齐。 0021 可选地, 在上述方面的一个示例中, 所述装置还包括: 加密单元, 对所接收的计算 数据进行同态加密得到密文计算数据, 所述并行计算单元根据所述分块线程资源调用所述 并行计算架构来基于所。

23、述密文计算数据执行并行计算得到密文计算结果。 0022 可选地, 在上述方面的一个示例中, 所述装置还包括: 解密单元, 对所述密文计算 结果进行同态解密, 得到明文计算结果, 所述计算结果提供单元将所述明文计算结果提供 给所述算法实现层。 0023 根据本说明书的实施例的另一方面, 提供一种联邦学习成员设备, 包括: 前端, 部 署有用于实现联邦学习模型的算法实现层; 以及后台计算系统, 包括如上所述的用于实现 联邦学习中的计算任务加速处理的装置以及并行计算架构。 0024 根据本说明书的实施例的另一方面, 提供一种用于联邦学习的方法, 所述方法由 联邦学习成员设备执行, 所述方法包括: 响。

24、应于接收到联邦学习任务, 在算法实现层对所述 联邦学习任务进行解析得到计算任务和计算任务所需计算数据, 并将所述计算任务和计算 数据提供给后台计算系统; 在后台计算系统, 根据所述计算任务的操作类型和所述计算数 据的数据大小确定所述计算任务的并行计算方案, 所述并行计算方案包括并行计算分块的 数目以及各个并行计算分块的分块线程资源分配方案, 各个并行计算分块内利用所分配的 多个线程来实现并行计算; 根据所述分块线程资源分配方案来调用所述并行计算架构执行 并行计算得到计算结果; 并且将所述计算结果提供给所述算法实现层; 以及所述算法实现 层根据所述计算结果来确定所述联邦学习任务的处理结果。 00。

25、25 根据本说明书的实施例的另一方面, 提供一种联邦学习系统, 包括至少两个如上 所述的联邦学习成员设备。 0026 根据本说明书的实施例的另一方面, 提供一种计算设备, 包括: 至少一个处理器, 以及与所述至少一个处理器耦合的存储器, 所述存储器存储指令, 当所述指令被所述至少 一个处理器执行时, 使得所述至少一个处理器执行如上所述的用于实现联邦学习中的计算 任务加速处理的方法。 0027 根据本说明书的实施例的另一方面, 提供一种机器可读存储介质, 其存储有可执 行指令, 所述指令当被执行时使得所述机器执行如上所述的用于实现联邦学习中的计算任 务加速处理的方法。 附图说明 0028 通过参。

26、照下面的附图, 可以实现对于本说明书内容的本质和优点的进一步理解。 在附图中, 类似组件或特征可以具有相同的附图标记。 0029 图1示出了根据本说明书的实施例的联邦学习系统的示例架构图。 0030 图2示出了根据本说明书的实施例的联邦学习成员设备的示例架构示意图。 0031 图3示出了根据本说明书的实施例的联邦学习成员设备的处理过程的示例流程 图。 0032 图4示出了根据本说明书的实施例的用于实现计算任务加速处理的方法的流程 图。 说明书 3/13 页 7 CN 112148437 A 7 0033 图5示出了根据本说明书的实施例的二维分块中的线程排列的示例示意图。 0034 图6示出了根。

27、据本说明书的实施例的元素并行计算处理的示例示意图。 0035 图7示出了根据本说明书的实施例的分块线程资源分配方案的逻辑组织的示例示 意图。 0036 图8示出了根据本说明书的实施例的并行计算方案的确定过程的示例流程图。 0037 图9示出了根据本说明书的实施例的基于联邦学习的线性回归模型的模型训练过 程的流程图。 0038 图10示出了根据本说明书的实施例的用于实现计算任务加速处理的装置的方框 图。 0039 图11示出了根据本说明书的实施例的并行计算方案确定单元的一个实现示例的 方框图。 0040 图12示出了根据本说明书的实施例的用于实现联邦学习中的计算任务加速处理 的计算设备的方框图。。

28、 具体实施方式 0041 现在将参考示例实施方式讨论本文描述的主题。 应该理解, 讨论这些实施方式只 是为了使得本领域技术人员能够更好地理解从而实现本文描述的主题, 并非是对权利要求 书中所阐述的保护范围、 适用性或者示例的限制。 可以在不脱离本说明书内容的保护范围 的情况下, 对所讨论的元素的功能和排列进行改变。 各个示例可以根据需要, 省略、 替代或 者添加各种过程或组件。 例如, 所描述的方法可以按照与所描述的顺序不同的顺序来执行, 以及各个步骤可以被添加、 省略或者组合。 另外, 相对一些示例所描述的特征在其它例子中 也可以进行组合。 0042 如本文中使用的, 术语 “包括” 及其变。

29、型表示开放的术语, 含义是 “包括但不限于” 。 术语 “基于” 表示 “至少部分地基于” 。 术语 “一个实施例” 和 “一实施例” 表示 “至少一个实施 例” 。 术语 “另一个实施例” 表示 “至少一个其他实施例” 。 术语 “第一” 、“第二” 等可以指代不 同的或相同的对象。 下面可以包括其他的定义, 无论是明确的还是隐含的。 除非上下文中明 确地指明, 否则一个术语的定义在整个说明书中是一致的。 0043 本说明书的实施例提供一种用于实现联邦学习中的计算任务加速处理的方法及 装置。 利用该方法及装置, 根据计算任务的操作类型和计算数据的数据大小来将计算任务 划分为多个并行计算分块,。

30、 每个并行计算分块处理部分计算任务, 同时每个并行计算分块 被分配多个线程, 该多个线程可以同时启动并且是连续线程, 从而使得可以通过使用基于 分块并行和线程并行的双层并行处理方案来高效地实现联邦学习中的计算任务并行处理。 0044 下面将结合附图描述根据本说明书的实施例的用于实现联邦学习中的计算任务 加速处理的方法、 装置及硬件加速设备。 0045 图1示出了根据本说明书的实施例的联邦学习系统1的示例架构图。 联邦学习系统 1包括至少两个联邦学习成员设备110。 在图1的示例中, 示出了N个联邦学习成员设备。 每个 联邦学习成员设备具有用于联邦学习的私有数据, 并且N个联邦学习成员设备使用各。

31、自的 私有数据来联合执行联邦学习任务。 0046 在本说明书的实施例中, 联邦学习成员设备可以是任何合适的具有计算能力的计 说明书 4/13 页 8 CN 112148437 A 8 算设备。 所述计算设备包括但不限于: 个人计算机、 服务器计算机、 工作站、 桌面型计算机、 膝上型计算机、 笔记本计算机、 移动计算设备、 智能电话、 平板计算机、 蜂窝电话、 个人数字 助理(PDA)、 手持装置、 消息收发设备、 可佩戴计算设备、 消费电子设备等等。 0047 图2示出了根据本说明书的实施例的联邦学习成员设备2的示例架构示意图。 0048 如图2所示, 联邦学习成员设备2包括前端10和后台计。

32、算系统20。 前端10上部署有 算法实现层, 所述算法实现层用于实现联邦学习模型, 例如, 联邦线性回归模型、 联邦逻辑 回归模型、 SecureBoost模型等。 后台计算系统20用于实现算法实现层的并行计算处理。 后 台计算系统20也可以称为底层计算架构。 0049 后台计算系统20包括硬件加速装置201和并行计算架构202。 并行计算架构202包 括模幂算子203和模乘算子204。 模幂算子203用于实现模幂计算, 以及模乘算子204用于实 现模乘计算。 在一个示例中, 后台计算系统20可以被实现为GPU设备。 0050 图3示出了根据本说明书的实施例的联邦学习成员设备的处理过程的示例流。

33、程 图。 0051 如图3所示, 在310, 在算法实现层接收到联邦学习任务后, 在算法实现层对联邦学 习任务进行解析得到计算任务和计算任务所需计算数据, 并在320, 将计算任务和计算数据 提供给后台计算系统。 0052 在330, 在后台计算系统, 根据计算任务和计算数据执行并行计算, 并且在340, 将 计算结果提供给所述算法实现层。 0053 具体地, 硬件加速装置201从前端算法实现层接收模型训练过程中的计算任务和 计算数据, 根据计算任务的操作类型和计算数据的数据大小确定计算任务的并行计算方 案, 所述并行计算方案包括并行计算分块的数目以及各个并行计算分块的分块线程资源分 配方案,。

34、 各个并行计算分块内利用所分配的多个线程来实现并行计算。 然后, 硬件加速装置 201根据分块线程资源分配方案来调用并行计算架构中的模幂算子203或模乘算法204执行 并行计算得到计算结果, 并且将计算结果提供给算法实现层。 0054 然后, 在350, 算法实现层根据计算结果来确定联邦学习任务的处理结果, 并且执 行后续模型训练过程。 0055 图4示出了根据本说明书的实施例的用于实现联邦学习中的计算任务加速处理的 方法400的流程图。 0056 在410, 从算法实现层接收计算任务和计算数据。 计算任务例如可以是模型训练过 程中的矩阵乘法计算任务等。 计算数据例如可以是模型参数矩阵、 训练。

35、样本数据矩阵等。 可 选地, 在一个示例中, 计算数据可以为大数矩阵。 在另一示例中, 所述计算数据可以是密文 数据, 例如, 经过同态加密后的数据。 在一个示例中, 计算数据可以是经过Paillier加密后 的数据。 0057 在420, 根据计算任务的操作类型和计算数据的数据大小确定计算任务的并行计 算方案, 所述并行计算方案包括并行计算分块的数目以及各个并行计算分块的分块线程资 源分配方案。 此外, 在该并行计算方案中, 各个并行计算分块内利用所分配的多个线程来实 现并行计算, 由此实现基于分块(block)并行和线程并行的双层并行处理方案。 0058 在CUDA编程模型中, 运行在GP。

36、U上的并行计算函数叫做kernel(核函数), 一个 kernel可以看成是CUDA程序中可以被并行执行的步骤。 Kernel函数可以存在两个层次的并 说明书 5/13 页 9 CN 112148437 A 9 行计算, 即, 分块之间的并行计算(即, 分块并行)和分块中的线程间并行(即, 线程并行)。 这 里需要注意的是, 分块并行以及线程并行都是在逻辑上划分的GPU上的线程资源并行处理。 一个分块中的线程在硬件层面都被组织成一维, 以warp(线程束)为单位执行, 每个warp中 的线程是连续的, 并且每个warp中的线程可以做到完全并行且彼此通信, 由此实现元素级 并行处理(线程级并行处。

37、理)。 换言之, 在GPU上, 每个线程都有对应的索引index, 同一warp 中的线程需要同时满足以下两个条件: (1)同时启动; 以及(2)线程index是连续的。 此外, 一 个二维分块中的线程按照列来连续标记的。 图5示出了根据本说明书的实施例的二维分块 中的线程排列的示例示意图。 如上所述, warp中的各个线程都是同时发起, 即, 严格并行无 时延, 并且各个线程之间可以相互通信, 从而使得能够以一个warp为组织单位来处理一个 大数的分治并行计算。 0059 在一个示例中, 计算任务的操作类型可以为矩阵乘法计算, 以及计算数据是大数 矩阵。 相应地, 各个并行计算分块之间执行矩。

38、阵级并行计算, 以及各个并行计算分块内根据 所分配的多个线程来执行元素级并行计算(线程级并行计算)。 0060 下面结合示例来说明元素级并行计算和矩阵级并行计算。 0061 在硬件设备中, 大数之间的计算没有硬件芯片指令直接支持, 由此采用分治多线 程方法进行计算优化。 在计算过程中, 每个大数都会被拆解成硬件芯片指令可以直接支持 计算的低比特数。 图6示出了根据本说明书的实施例的元素并行计算处理的示例示意图。 如 图6所示, 假设有a和b两个N比特的大数之间进行乘法计算, 则可以将大数a折半拆分为aL和 aR以及将大数b折半拆分为bL和bR。 由此得到, 0062 a2N/2*aL+aR 0。

39、063 b2N/2*bL+bR 0064 拆解后的大数相乘得到: 0065 a*b2N*aL*bL+2N/2(aL*bR+aR*bL)+aR*bR 0066 观察上式, 各个子项aL*bL、 aL*bR、 aR*bL和aR*bR之间不存在数据关联性, 从而可 以放在多个不同的线程中并行计算。 当N非常大的时候, 可以通过递归折半的方式进一步拆 解大数, 由此可以充分利用GPU的多核并行计算特性快速完成大数计算。 上述并行计算可以 称为元素级并行计算。 0067 GPU体系结构采用了Single Instruction Multiple Thread(SIMT)设计架构用来 管理和执行线程。 上。

40、面提及的warp就是SIMT单元。 在SIMT模式中, 单个指令可以操作多个线 程, 这些线程执行的指令是相同的, 但是可以是针对不同的数据。 因此, 为了充分发挥GPU上 的SIMT并行计算特性, 元素级并行计算任务可以分配到一个warp的连续线程中来进行并行 处理。 0068 在联邦学习的模型训练中会涉及到很多矩阵运算, 并且矩阵中的每个元素通常都 是大数。 为了提高大数矩阵的计算效率, 在元素级并行计算的基础上进一步提出了矩阵级 并行计算方案。 元素级并行计算在处理大数计算时需要多个连续线程来处理。 为了实现元 素级并行计算和矩阵级并行计算的双层并行计算机制, 在GPU上实现大数矩阵计算。

41、时, 将各 个并行计算分块的分块线程资源分配方案组织为三元组(NumT, a, b), 其中, NumT是元素级 并行处理所需的连续线程数量, (a, b)用于映射结果矩阵中的元素位置。 换言之, (a, b)对应 计算结果矩阵的一个小块, a*b的大小代表着所分配的分块线程资源一共需要处理的大数 说明书 6/13 页 10 CN 112148437 A 10 数目。 0069 图7示出了根据本说明书的实施例的分块线程资源分配方案的逻辑组织的示例示 意图。 0070 如图7所示, 分块线程资源分配方案被组织为三元组结构(NumT, a, b)。 (NumT, a, b) 所限定的线程用于实现并。

42、行计算分块的并行计算处理, 即, 图7所限定的线程用于实现一个 并行计算分块的并行计算处理。 如图7所示, (NumT, a, b)中的NumT所限定的线程是图7中的 黑色方框所限定的区域。 该NumT个线程用于实现矩阵计算的结果矩阵中的一个结果矩阵元 素的大数计算。 换言之, 该大数计算被分解为NumT个并行子任务, 每个子任务由黑色方框中 的一个线程来执行。 在一个示例中, NumT的取值可以根据计算数据的数据大小确定, 所述计 算任务类型例如可以包括矩阵乘法和矩阵加法。 例如, 在针对1024bit的计算数据做大数乘 法时, NumT的取值通常为16。 在针对2048bit的计算数据做大。

43、数乘法时, NumT的取值通常为 32。 由此, 可以预先设置映射表, 在每次接收到计算任务后, 根据计算数据的数据大小来在 映射表中查询得到NumT的取值。 此外, 图7中的黑色方框中所限定的线程(即, NumT个线程) 可以看成位于同一warp中, 用于处理一个大数计算的元素级并行计算操作。 此外, 在采用 CUDA编程模型的情况下, 由于在CUDA编程模型中线程编号是按照列来连续标记, 从而将 NumT设置为三元组结构的第一个维度。 0071 三元组结构的后两个维度(a, b)用于映射计算结果矩阵中的元素位置, 即, 用于定 位或映射并行计算分块所计算出的计算结果矩阵的结果矩阵元素。 所。

44、述元素位置可以为计 算结果矩阵中的一个元素位置, 或者计算结果矩阵中的一个分块。 在硬件层面, GPU的线程 资源分配是一维。 由于kernel函数的计算结果会被存储到计算结果矩阵中的对应位置(x, y),如果将线程资源分配组织为一维, 比如一个线程的ID为A,则需要将线程ID A映射回对 应位置(x,y), 映射的计算方式为: xA/COL, yA mod COL。 这里, COL是矩阵宽度。 但是如 果如上所述组织线程, 则分块线程资源就可以直接映射到由(a, b)标识的计算结果矩阵位 置, 从而不需要引入额外的映射计算。 由此无需在kernel函数里引入不必要的除法和取模 计算。 007。

45、2 图8示出了根据本说明书的实施例的并行计算方案的确定过程800的示例流程图。 0073 如图8所示, 在810, 根据计算任务的操作类型和计算数据的矩阵大小确定计算任 务的结果矩阵大小。 例如, 假设计算任务为矩阵计算, 计算数据A的矩阵大小为1000,50, 以及计算数据B的矩阵大小为50,1000, 则结果矩阵大小为1000,1000。 0074 在820, 根据结果矩阵大小和并行计算分块的最大可分配线程数量, 确定并行计算 分块的可处理结果矩阵分块尺寸。 并行计算分块的最大可分配线程数量由硬件设备自身的 计算能力决定的。 例如, 在联邦学习成员设备是GPU设备的情况下, 在硬件层面, 。

46、GPU包括SM (Stream Processor)和SP(Stream Processor)。 SM是GPU计算核心, 每个SM包括8个SP。 隶属 于同一SM的8个SP共用一套取指与发射单元, 并且也共用一块共享存储器。 一个并行计算分 块中的线程在一个SM中发射, 因此一个并行计算分块中的最大可分配线程数量取决于该硬 件上的GPU计算核心能力大小(即, SM的计算能力大小)。 例如, V100计算设备支持的单个并 行计算分块的最大可分配线程数量为1024个线程。 0075 在进行可处理结果矩阵分块尺寸确定时, 首先, 根据计算数据的数据大小确定 NumT大小。 例如, 在针对2048bi。

47、t的大数执行矩阵计算时, NumT为32个线程, 即, 一个大数计 说明书 7/13 页 11 CN 112148437 A 11 算需要使用32个线程, 则该并行计算分块可以计算的最多大数计算的个数为32个。 在针对 1024bit的大数执行矩阵计算时, NumT为16个线程。 。 0076 在确定出NumT大小后, 根据结果矩阵大小和并行计算分块的最大可分配线程数 量, 确定并行计算分块的可处理结果矩阵分块尺寸。 在本公开中, 可处理结果矩阵分块尺寸 是指可处理结果矩阵分块的大小和形状。 例如, 如上所述, 一个并行计算分块的最大可分配 线程数量为1024, 并且在针对2048bit的大数。

48、执行矩阵计算时, NumT为32个线程, 由此该并 行计算分块最多可以计算出结果矩阵中的32个结果矩阵元素, 即, 并行计算分块可以计算 的最大结果矩阵元素的个数为32个, 由此可处理结果矩阵分块的大小不超过32个结果矩阵 元素, 例如, 假设为32个结果矩阵元素。 但是该32个结果矩阵元素可以被组织为216的分 块形状, 也可以被组织为48的分块形状。 在本公开中, 为了充分利用硬件设备的线程资 源, 避免发生线程空跑现象, 在确定并行计算分块的可处理结果矩阵分块尺寸时, 根据结果 矩阵大小X, Y来确定可处理结果矩阵分块的分块形状m, n。 例如, 在一个示例中, 通过确 保m被X整除以及。

49、n被Y整除来确定可处理结果矩阵分块的分块形状, 即, 确定出合适的m和n。 在一个示例中, 可以通过向上取整计算来确定出合适的m和n。 在本公开中, NumTmn即为 并行计算分块的实际使用线程数量, 其可以等于或者小于并行计算分块的最大可分配线程 数量。 0077 然后, 在830, 根据结果矩阵大小和所确定出的可处理结果矩阵分块尺寸, 确定计 算任务的并行计算方案。 即, 确定需要使用多少个并行计算分块(即, 并行计算分块的数 目), 以及每个并行计算分块执行针对结果矩阵中的哪些结果矩阵元素的矩阵计算。 换言 之, 每个并行计算分块负责矩阵计算中的哪些元素之间的矩阵计算。 这里, 每个并行。

50、计算分 块所分配的分块线程资源分配方案被组织为三元组(NumT, a, b), 其中, (a, b)用于映射结果 矩阵中的结果矩阵元素位置。 在一个示例中, 在可处理矩阵分块尺寸固定的情况下, (a, b) 也可以理解为该并行计算分块在结果矩阵中的分块索引。 例如, 假设根据可处理结果矩阵 分块尺寸为48的基准矩阵分块, 则可以使用该基准矩阵分块来从结果矩阵的左上角第一 个元素开始依次划分, 由此在X方向上被划分为1000/4250个, 以及在Y方向上被划分为 1000/8125, 即, 25012531250个分块, 并且该31250个分块可以形成为由二维索引(a, b)组成的31250个分。

展开阅读全文
内容关键字: 用于 联邦 学习 计算 任务 加速 处理 方法 装置 设备
关于本文
本文标题:用于联邦学习的计算任务加速处理方法、装置及设备.pdf
链接地址:https://www.zhuanlichaxun.net/pdf/10117184.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1