Piranha: A GPU Platform for Secure Computation

2024-03-15 11:10

本文主要是介绍Piranha: A GPU Platform for Secure Computation,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 概述
  • 设备层
  • 协议层
  • 应用层

概述

Piranha是一款通用的模块化平台用于使用GPU加速基于密钥共享的MPC协议,它的结构如下图所示。

在这里插入图片描述

Piranha有三层结构:设备层,协议层,应用层。下文将对三层的功能做具体介绍。

设备层

设备层通过提供当前通用GPU库缺失的基于整数的内核可以进行独立的加速密钥共享协议。
设备层有三个模块分别是:数据管理(data managemnet),基于迭代器的操作以及整数内核。

数据管理
文章提出了一个:DeviceData buffer的概念。为什么要有DeviceData buffer?将数据存放在GPU上而不是CPU上可以避免GPU内核计算时的数据传输开销。
如何提高协议性能?对秘密共享值的集合进行逐元素操作是一种常见的操作。由于这些操作常常涉及大量的计算,因此将它们并行化加速,利用 GPU(图形处理单元)的性能,可以自然而然地提高协议性能。独立于特定协议,秘密共享数据上的MPC功能分解为一组通用的局部算术运算,这样就可以适配大部分的MPC协议。
基于迭代器的操作
由于GPU的空间有限,所以需要提高存储效率。Piranha的迭代器允许开发者通过程序定义的顺序遍历数据向量,同时在一个与实际物理数据布局无关的视图上执行操作。可以在原地进行逐元素操作,并将计算结果存储在现有内存中从而节省内存。
整数内核
MPC协议需要32位或64位类型的数据类型进行加密共享。目前研究仅仅针对于浮点数据类型,所以作者提出了自己的解决方法:直接在整数数据类型上面实现内核。Piranha直接在设备层提供了所有大小的整数矩阵乘法和卷积内核(CUTLASS)。

协议层

Piranha实现任何一个协议需要指定两件事:1.密钥共享基础(包括攻击模型)。2.在此之上的操作。
下图展示了一个简单的三方协商的实现。
在这里插入图片描述
高效存储的开发
上文提到了高效存储的开发:普通的加法进位器需要分别存储共享密钥的每一位增加了内存占用。
其次使用连续的分配去隔离成对的位会导致额外的内存使用和数据复制。下图(a)展示了标准的加法进位器的内存使用情况。
在这里插入图片描述
相反在(b)中Piranha使用了基于迭代器的视图按照一定的步幅访问非连续的数据元素,并将结果存储在相同位置,提高了内存的使用效率。

可重用协议组件
Piranha的结构支持重用协议实现,因此协议可以构建在其它应用上。作者实现了几种可重复使用的模型包括:安全比较, 近似计算等

MPC协议
文章实现了三个不同的MPC协议以便展示Piranha的通用性包括:P-SecureML,P-Falcon,P-FantasticFour。

应用层

应用层的目的主要是为了进行神经网络的相关训练,如下图所示为Piranha实现的协议无关版本的神经网络基础模块。
在这里插入图片描述
连接神经网络库 Piranha为了支持神经网络库在多MPC协议上,需要每个MPC协议实现在一个通用功能集上,这样便可以在支持层的帮助下进行训练和推理任何神经网络结构。
神经网络的安全训练
Piranha提出了新的梯度计算方法以便实现更加稳定的损失。

这篇关于Piranha: A GPU Platform for Secure Computation的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/811768

相关文章

AI Toolkit + H100 GPU,一小时内微调最新热门文生图模型 FLUX

上个月,FLUX 席卷了互联网,这并非没有原因。他们声称优于 DALLE 3、Ideogram 和 Stable Diffusion 3 等模型,而这一点已被证明是有依据的。随着越来越多的流行图像生成工具(如 Stable Diffusion Web UI Forge 和 ComyUI)开始支持这些模型,FLUX 在 Stable Diffusion 领域的扩展将会持续下去。 自 FLU

如何用GPU算力卡P100玩黑神话悟空?

精力有限,只记录关键信息,希望未来能够有助于其他人。 文章目录 综述背景评估游戏性能需求显卡需求CPU和内存系统需求主机需求显式需求 实操硬件安装安装操作系统Win11安装驱动修改注册表选择程序使用什么GPU 安装黑神话悟空其他 综述 用P100 + PCIe Gen3.0 + Dell720服务器(32C64G),运行黑神话悟空画质中等流畅运行。 背景 假设有一张P100-

GPU 计算 CMPS224 2021 学习笔记 02

并行类型 (1)任务并行 (2)数据并行 CPU & GPU CPU和GPU拥有相互独立的内存空间,需要在两者之间相互传输数据。 (1)分配GPU内存 (2)将CPU上的数据复制到GPU上 (3)在GPU上对数据进行计算操作 (4)将计算结果从GPU复制到CPU上 (5)释放GPU内存 CUDA内存管理API (1)分配内存 cudaErro

PyInstaller问题解决 onnxruntime-gpu 使用GPU和CUDA加速模型推理

前言 在模型推理时,需要使用GPU加速,相关的CUDA和CUDNN安装好后,通过onnxruntime-gpu实现。 直接运行python程序是正常使用GPU的,如果使用PyInstaller将.py文件打包为.exe,发现只能使用CPU推理了。 本文分析这个问题和提供解决方案,供大家参考。 问题分析——找不到ONNX Runtime GPU 动态库 首先直接运行python程序

麒麟系统安装GPU驱动

1.nvidia 1.1显卡驱动 本机显卡型号:nvidia rtx 3090 1.1.1下载驱动 打开 https://www.nvidia.cn/geforce/drivers/ 也可以直接使用下面这个地址下载 https://www.nvidia.com/download/driverResults.aspx/205464/en-us/ 1.1.3安装驱动 右击,

Kubernetes的alpha.kubernetes.io/nvidia-gpu无法限制GPU个数

问题描述: Pod.yaml文件中关于GPU资源的设置如下: 然而在docker中运行GPU程序时,发现宿主机上的两块GPU都在跑。甚至在yaml文件中删除关于GPU的请求,在docker中都可以运行GPU。 原因: 上例说明alpha.kubernetes.io/nvidia-gpu无效。查看yaml文件,发现该docker开启了特权模式(privileged:ture): 而

GPU池化赋能智能制造

2023年3月10日,“第六届智能工厂高峰论坛”在杭州隆重揭幕。本次会议由e-works数字化企业网、浙江制信科技有限公司主办,中国人工智能学会智能制造专业委员会、长三角新能源汽车产业链联盟、长三角(杭州)制造业数字化能力中心、浙江省智能工厂操作系统技术创新中心协办。趋动科技作为钻石合作伙伴出席了本次峰会,与制造业精英企业以及行业专业人士共同分享制造业在智能工厂推进过程中的成功经验,探讨工厂改进中

【linux 常用命令】查看gpu、显卡常用命令

1.查看显卡基本信息 lspci | grep -i nvidia 2.查看显卡驱动版本 nvidia-smi -a 3.查看gpu使用情况 nvidia-smi (spam) [dongli@dt-gpu-1 train]$ nvidia-smi Fri Sep 27 16:42:33 2019 +----------------------------------------

图形API学习工程(12):讨论当前工程里同步CPU与GPU的方式

工程GIT地址:https://gitee.com/yaksue/yaksue-graphics 简单讨论CPU和GPU间的交互 《DX12龙书》在【4.2 CPU与GPU间的交互】章节中讨论了这个问题,简单来说: 为了最佳性能,CPU和GPU这两种处理器应该尽量同时工作,少“同步”。因为“同步”意味着一种处理器以空闲状态等待另一种处理器,即它破坏了“并行”。 但有时,又不得不进行二者的同步

pytorch gpu国内镜像下载,目前最快下载

前言         pytorch的cpu的包可以在国内镜像上下载,但是gpu版的包只能通过国外镜像下载,网上查了很多教程,基本都是手动从先将gpu版whl包下载下来,然后再手动安装,如何最快的通过pip的命令安装呢?下面我细细讲下。 解决办法        目前国内有pytorch的gpu版的whl包只有阿里云上的:https://mirrors.aliyun.com/pytorch-w