其他
Piranha: 用于安全计算的GPU平台(A GPU Platform for Secure Computation)
Introduction
目前,还没有直接在GPU上实现整数Kernel,以支持MPC协议的工作。Piranha面向的则是这个问题。Challenges & Insights: 为了支持GPU加速的MPC协议,本文总结了三个挑战:1. Protrocol-independent acceleration. 不同的MPC协议对于同样的功能模块计算流程是不同的,例如两方和三方的乘法计算协议就完全不同。如果加速技术依赖于协议本身的性质,那么每次希望在GPU加速基础上设计新协议的时候,就必须重新构建关于GPU加速的底层模块。另一方面,不同的计算协议都可以分解为 本地计算+通信。Piranha以vector shares为基本的处理单元来计算local operations,然后结合参与方之间的通信来实现计算。通过对local data的秘密分享抽象,Piranha能够将所有的数据和计算保持在GPU上,最大化GPU的加速效率并尽可能减少通过CPU的各个参与方之间的数据传输; 2. Enabling integer-basec GPU Computation. MPC协议是操作在整数上的,可惜的是GPU只关注在明文浮点数计算。为了填补这个空白,Piranha提供了一个integer-based Kernel并以此为基础表示integer-based shares、加速基本算子计算; 3. Supporting large MPC problems in limited GPU memory. 由于GPU的存储(e.g., 12、16GB)比内存(e.g., 64GB)小很多,因此会限制应用的规模。进一步,秘密分享会成倍的增加内存占用,因此会加剧存储的问题。为了缓解这个问题,本文:1)首先利用in-place operations 来进行本地份额的计算,当且仅当明显需要额外存储的时候才分配GPU内存;2)第二点,MPC协议可能会需要与整数Kernel不兼容的非标准访存模式。简单的将数据拷贝然后组织成预期的布局会需要额外的存储空间。Piranha针对这个问题基于GPU内存视图提出了内存-高效的计算以支持in-place computation,从而避免申请临时内存或者数据传输。 为了验证Piranha的性能,本文实现了三种协议:1)SecureML(两方),2)Falcon(三方),和3)FantasticFour(四方)。和之前的CPU版本的协议相比,Piranha对于模型训练方面能够提升训练时间。更重要的,Piranha是第一次实现能力能够大约一天时间完成一个实用化神经网络(比如VGG)的完整训练。2
System Architecture
Device Layer
该层主要解决两个问题:1)处理向量化的GPU数据;2)支持加速基于整数的计算。Protocol Layer
本文实现了SecureML,Falcon,和FantasticFour协议的GPU版本,并且还提出了Memory-efficient协议来进一步减少内存开销。4.1 MPC protocol implementation 利用DeviceData可以实现local shares的本地化操作。以三方replicated secret sharing为例,加法和数乘可以本地计算得到。乘法则需要resharing。更一般,乘法可以推广为矩阵乘法。矩阵乘法的代码示意如下:
4.3 Reusable protocol components
其他重要的模块包括比较函数和近似计算。比较函数: 比较函数本文使用edaBits: 其中 且 来实现。利用edaBits可以将算数分享的比较问题转化为布尔分享的转化问题,而布尔分享的比较可以通过CarryOut实现。近似计算: 对于平方根计算和倒数计算,本文首先求其输入的最近二次幂(和Falcon类似),然后将输入转化到0.5到1之间。进而使用如下的泰勒级数多项式近似:
5
Application Layer
该层提供了面向神经网络模型训练的接口,具体来说是神经网络函数的实现。本文支持的面向NN的函数如下:Evaluation
本文关注在线计算性能和通信,和基于MP-SPDZ的实现相比,大大提升了算子和整体训练的性能。矩阵乘法、卷积和ReU算子的提升如下:译者简介:董业,本科毕业于山东大学计算机科学与技术专业,目前在中国科学院信息工程研究所攻读博士学位。主要研究兴趣包括隐私保护、安全多方计算、同态加密和机器学习。知乎:酸菜鱼。
往期推荐
机器学习隐私保护相关文献整理
FedGEN:面向异质联邦学习的无数据知识蒸馏框架
阿里、浙大顶会论文:联邦环境下,基于元学习的图谱知识外推
本地差分隐私 VS 全局差分隐私