Concrete v2.7版本发布,引入了GPU加速功能,通过安装GPU wheel并设置use_gpu选项即可利用GPU进行FHE计算加速,最多可提速2.5倍。同时,新版本还扩展了函数组合的支持,通过分区优化和指定函数依赖关系,进一步提升模块的性能。此外,v2.7还包含其他一些小的改进。
我们很高兴地宣布,Concrete v2.7 引入了第一个可以加速 GPU 计算的 wheel!在这个新版本中,我们还扩展了对函数组合的支持,并在 Python 前端为用户添加了几个新功能。
对于那些一直在关注我们 GitHub 仓库的人来说,你知道在 GPU 上加速全同态加密(FHE)是一项具有挑战性的任务。经过数月努力和重大进展,我们很高兴地宣布 FHE 的 GPU 加速现已正式提供给最终用户。
Concrete 旨在使 FHE 易于使用,因此开发人员可以利用其强大功能,而无需广泛了解 FHE 或 GPU 加速。要使用 GPU 加速,只需安装支持 GPU 加速的 Concrete wheel,并在编译时添加 use_gpu 选项。你可以在我们的 Zama 公共 PyPI 中找到 GPU。有两个仓库:一个用于 CPU wheel(包括 nightly 版本),一个用于 GPU wheel。要安装 GPU wheel,你只需在安装命令中指定我们的 GPU 仓库即可。
pip install concrete-python --index-url https://pypi.zama.ai/gpu
安装 GPU wheel 后,你需要将编译函数的 use_gpu 选项设置为 True,Concrete 编译器/运行时将在后台执行其余操作,以利用主机的所有可用 CPU 和 GPU。
from concrete import fhe
@fhe.compiler({"x": "encrypted"})
def myfunction(x):
...
myfhefunction = myfunction.compile(inputset, use_gpu=True)
重要的是要注意,配备 GPU 的主机并不总是比只有 CPU 的机器快。性能提升取决于硬件和工作负载。一个关键因素是可并行化工作量及其粒度,因此,例如,在线性代数方面工作量大的工作负载往往会受益于 GPU。
我们已经对在三个不同系统上运行 CIFAR-10 的此功能进行了基准测试:
此基准测试的执行时间(无论是在精确模式还是近似 PBS 模式下)如下:
正如我们所看到的,在这种使用案例中,GPU wheel 比 CPU wheel 快 2.5 倍。
在我们之前的版本 Concrete v2.7 中,引入了 模块,它允许组合多个函数。但是,由于它依赖于可用的最简单的算法来选择密码学参数,因此支持非常有限,这意味着整个模块都使用同一组参数。根据你的模块,这种方法可能会严重影响性能。
Concrete v2.7 通过使用基于分区的方案改进了模块优化。此方法允许为模块的不同部分使用不同的加密参数。通过基于子部分的精度要求对图进行分区,你可以独立优化不同的分区并产生更严格的加密参数。
与往常一样,此复杂性完全由 Concrete 处理。如果你已经在使用模块,只需更新 Concrete 即可享受性能提升。
如果你想要更严格的加密参数,Concrete v2.7 现在允许你指定模块中函数之间的实际依赖关系。这使编译器能够应用更积极的分区,从而加快执行速度。
以下代码段显示了如何指定输入和输出之间的依赖关系。你可以在此处找到有关 wiring API 的更多信息。
from concrete import fhe
from fhe import Wired, Wire, Output, Input
@fhe.module()
class Collatz:
@fhe.function({"x": "encrypted"})
def collatz(x):
y = x // 2
z = 3 * x + 1
is_x_odd = fhe.bits(x)[0]
ans = fhe.multivariate(lambda b, x: b * x)(is_x_odd, z - y) + y
is_one = ans == 1
return ans, is_one
composition = Wired(
[\
Wire(Output(collatz, 0), Input(collatz, 0)\
]
)
最后, Concrete v2.7 包括几个其他的细微改进,你可以在 GitHub 或 发行说明 中找到它们。这些改进不需要对 API 进行任何更改,因此我们鼓励你测试我们的最新版本,并在无需任何额外工作的情况下享受这些改进带来的好处。
感谢你一直以来的支持和反馈,我们将努力使 FHE 对每个人都更易于访问和高效。
- 原文链接: zama.ai/post/concrete-v2...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!