当前位置: 首页 > article >正文

Versal AI Engine加速椭圆曲线密码学计算实践

1. 项目概述Versal AI Engine加速椭圆曲线密码学计算在当今的数字安全领域椭圆曲线密码学ECC因其高安全性和计算效率成为主流方案。其中多标量乘法MSM作为ECC的核心运算在零知识证明系统如zk-SNARKs中承担着最繁重的计算任务。传统CPU处理MSM时面临巨大性能瓶颈而GPU方案又存在能效比问题。本文介绍的正是我们团队在Versal ACAP异构平台上利用其AI EngineAIE阵列加速MSM中椭圆曲线点加法PADD的创新实践。Versal ACAP是AMD/Xilinx推出的革命性异构计算平台集成了三类计算单元传统处理器系统PS、可编程逻辑PL和400个AI Engine组成的阵列。AIE作为SIMD架构的VLIW处理器每个时钟周期可执行7条指令在32位定点模式下支持8路并行乘加运算MAC。这种架构特别适合处理PADD中密集的模乘运算但同时也面临进位传播等标量操作的挑战。我们的核心突破在于创新性地将进位传播完全保留在AIE内部处理避免了与PL的数据交换开销提出四种不同的计算任务空间映射策略在吞吐量和延迟之间实现最佳平衡针对BLS12-377曲线特性优化了模约减流程减少约30%的冗余计算最终实现67.0 M tasks/s的吞吐量达到理论内存带宽的50.2%较CPU实现提升568倍2. 技术背景与挑战解析2.1 椭圆曲线密码学基础现代椭圆曲线密码学通常采用扭曲爱德华曲线表示法-x² y² 1 k²x²y²。在射影坐标系(X,Y,T,Z)下点加法运算涉及以下核心计算扩展坐标转换输入点表示为(X,Y,U,Z)其中Uk·TZ1混合点加法假设两个点分别采用不同坐标系表示减少模乘次数完全点加法用于结果聚合阶段需要更完整的计算流程以BLS12-377曲线为例其模数p为377位每个点加法操作需要约17次377位模乘运算。在MSM场景中使用Pippenger算法可将计算复杂度从O(n)降至O(n/logn)但依然需要处理数千次点加法。2.2 Versal AI Engine架构特性AI Engine阵列采用独特的空间架构设计计算单元400个AIE Tile组成50x8矩阵运行频率1.25GHz指令集7路VLIW指令支持8x32位SIMD乘加操作存储层次每个Tile有32KB本地存储支持256位宽访问互连网络AXI4 Stream32位全连接但每个方向端口数有限Cascade Stream384位宽但仅限同行相邻Tile间通信共享内存相邻Tile可通过256位总线共享数据这种架构在提供强大并行计算能力的同时也对数据布局和任务划分提出了严苛要求。特别是密码学计算中的进位传播操作传统上依赖FPGA的专用进位链CARRY8而AIE缺乏类似硬件支持必须通过标量单元模拟成为主要性能瓶颈。2.3 关键技术挑战在AIE上实现高效PADD面临三大挑战计算密集型每个点加法需要约6000次32位乘法运算数据依赖性强进位传播导致长依赖链限制指令级并行内存带宽受限完全在PL中处理进位需要42.6 bits/cycle/Tile的带宽远超PLIO接口能力我们的解决方案是通过算法-架构协同优化将计算任务分解为适合AIE处理的细粒度流水线同时最小化Tile间的数据通信。3. 核心算法设计与优化3.1 大整数乘法优化采用改进的教科书算法schoolbook method处理377位整数乘法输入分解将377位整数a分解为16个25位段a₁₅...a₀向量化处理每8个段打包为一个向量共2个向量{ā₀,ā₁}块划分将乘法计算划分为6个计算块如图2a所示关键优化点SIMD并行每个块内8个32位乘法并行执行数据复用广播输入向量到多个计算块减少数据搬运延迟隐藏通过软件流水线处理多个输入序列模乘运算采用Barrett约简算法通过预计算常数μ⌊b²k/m⌋其中k⌈log₆m⌉将模约简转化为三次乘法z x × yq (z × μ) b²kr z - q × m我们通过精心安排计算块顺序使Barrett约简的三个乘法阶段能够无缝衔接减少中间结果存储。3.2 进位传播创新方案针对AIE架构特点我们提出两级进位传播策略精确进位传播用于关键路径// 伪代码示例处理向量元素的精确进位 for(int i0; i7; i) { uint64_t carry acc[i] 25; acc[i] 0x1FFFFFF; acc[i1] carry; }近似进位传播用于非关键路径// 利用数学恒等式 x mask x - (xs)s void coarse_carry(int64_t* acc) { int64_t hi acc 25; int64_t lo acc - (hi 25); *acc lo (hi 0x1FFFFFF); // 确保不进位到更高位 }实测表明这种混合策略可在保证数值精度的前提下将进位传播的标量操作减少40%同时通过VLIW指令并行执行标量和向量操作。3.3 空间映射策略比较我们探索了四种不同的计算任务划分方案细粒度并行Fine-grained每个AIE Tile处理一个计算块优点最大化计算密度缺点需要频繁Tile间通信吞吐量仅0.012 task/cycle粗粒度并行Coarse-grained每个AIE Tile处理完整模乘的三个阶段mul_in, mul_mu, mul_m吞吐量0.082 task/cycle延迟1097 cycles中粒度协作式Medium-cooperative两个Tile协作处理一个模乘吞吐量0.053 task/cycle中粒度独立式Medium-independent两个Tile独立处理模乘的不同部分最佳延迟795 cycles吞吐量0.050 task/cycle最终选择粗粒度方案用于桶积累阶段高吞吐需求中粒度独立方案用于桶聚合阶段低延迟需求。4. 实现细节与性能优化4.1 系统级架构设计整体系统架构分为三层PS层ARM处理器负责任务调度和DDR访问PL层FPGA逻辑处理数据预处理和最终约简AIE层400个Tile组成的计算阵列执行核心PADD运算数据流采用双缓冲设计PL通过AXI4-Stream向AIE输送点数据AIE内部使用级联流Cascade Stream传递中间结果计算结果通过共享内存返回PL进行最终处理4.2 AIE内核优化技巧通过实测总结出以下关键优化点指令调度// 典型VLIW指令束示例 { vmac, vadd, scalar_add, vpermute, nop, nop, nop }通过合理组合向量乘加、标量运算和数据重排操作最高可实现1.98的VLIW利用率7个槽位中平均使用5.86个。数据布局优化将常数μ和模数M预存储在向量寄存器中使用256位宽加载指令同时读取8个32位操作数关键中间结果保存在寄存器文件避免内存访问流水线控制// 软件流水线示例处理16个连续输入 #pragma unsafe for(int i0; i16; i) { prefetch(input[i4]); process(input[i]); }通过循环展开和预取隐藏内存延迟使计算单元保持90%以上利用率。4.3 性能实测结果在VCK190评估板上实现的性能指标指标本方案CPU基准提升倍数吞吐量M task/s67.00.11568×延迟μs/task1.059.699.2×能效GOPS/W42.30.853×内存带宽利用率达到50.2%相比将进位传播放在PL的方案21.9%带宽利用率有显著提升。5. 经验总结与优化方向5.1 实际部署中的教训流控问题 初期设计时低估了AXI4 Stream背压的影响。解决方案是在每个AIE Tile入口添加16深度的FIFO使用PL中的弹性缓冲调节数据速率Bank冲突 当多个Tile同时访问共享内存时出现性能下降。优化方法将共享数据分散到不同存储Bank采用交错访问模式编译器限制 AIE编译器对复杂控制流优化不足。应对策略将核心计算拆分为简单函数使用#pragma unroll强制展开关键循环5.2 未来优化方向算法层面引入Montgomery模乘减少进位传播混合Karatsuba算法提升大数乘法效率架构层面探索3D堆叠内存缓解带宽瓶颈利用AIE近存计算特性优化数据局部性系统层面结合PL实现异构流水线开发动态负载均衡调度器这项研究证实了Versal ACAP在密码学加速领域的巨大潜力。我们的优化方案不仅适用于椭圆曲线计算也可推广到其他需要大数运算的密码学原语如RSA、格密码等。随着AIE架构的演进预计还将获得更大的性能提升空间。

相关文章:

Versal AI Engine加速椭圆曲线密码学计算实践

1. 项目概述:Versal AI Engine加速椭圆曲线密码学计算在当今的数字安全领域,椭圆曲线密码学(ECC)因其高安全性和计算效率成为主流方案。其中,多标量乘法(MSM)作为ECC的核心运算,在零…...

企业级AI应用如何通过Taotoken统一管理多个大模型API调用

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 企业级AI应用如何通过Taotoken统一管理多个大模型API调用 在构建企业级AI应用时,技术团队常常面临一个现实挑战&#x…...

WordPress集成Claude AI:构建智能内容创作技术栈的实践指南

1. 项目概述与核心价值最近在折腾个人博客和内容创作工具链,发现了一个挺有意思的GitHub项目:mvtandas/wordpress-claude-stack。这名字一看就很有料,直接把WordPress和Claude这两个看似不搭界的玩意儿给“堆”到了一起。作为一个常年混迹在内…...

《QGIS空间数据处理与高级制图》008:OGR2OGR命令行工具核心优势

作者:翰墨之道,毕业于国际知名大学空间信息与计算机专业,获硕士学位,现任国内时空智能领域资深专家、CSDN知名技术博主。多年来深耕地理信息与时空智能核心技术研发,精通 QGIS、GrassGIS、OSG、OsgEarth、UE、Cesium、OpenLayers、Leaflet、MapBox 等主流工具与框架,兼具…...

【YOLO26实战全攻略】20——智慧交通(二):团雾识别+车流量统计全流程落地

摘要:团雾作为高速公路"流动杀手",常导致能见度骤降、事故频发,而传统监测手段响应滞后、统计粗放;车流量数据则是交通管控的核心依据,但精细化分类统计一直是行业痛点。本文基于YOLO26的边缘友好特性,结合FAENet特征增强网络与ByteTrack跟踪算法,打造了一套&…...

FastAPI部署演进:从Gunicorn+Uvicorn镜像到原生多进程的迁移指南

1. 项目背景与演进:从“黄金搭档”到“历史遗产”如果你在过去几年里用 FastAPI 部署过 Web 服务,大概率听说过或者用过tiangolo/uvicorn-gunicorn-fastapi-docker这个 Docker 镜像。它一度是 FastAPI 官方文档里推荐的部署方案之一,由 FastA…...

VSCode写Verilog效率翻倍:除了语法检查,再教你用Python插件自动生成模块例化

VSCode写Verilog效率翻倍:Python插件自动化实战指南 在FPGA开发中,Verilog代码的重复性劳动往往消耗工程师大量时间。我曾在一个图像处理项目中被模块例化折磨得焦头烂额——手动编写30多个相同结构的FIFO例化代码,不仅容易出错,后…...

告别网盘限速困扰:网盘直链下载助手全面解析与应用指南

告别网盘限速困扰:网盘直链下载助手全面解析与应用指南 【免费下载链接】baiduyun 油猴脚本 - 一个免费开源的网盘下载助手 项目地址: https://gitcode.com/gh_mirrors/ba/baiduyun 还在为网盘下载速度缓慢而烦恼吗?网盘直链下载助手作为一款免费…...

EDA工具选型实战:从价格到价值的深度迁移指南

1. 从价格战到价值战:一次EDA工具市场策略的深度复盘十年前,当Altium宣布将其旗舰PCB设计软件Altium Designer的价格下调约75%时,整个电子设计自动化(EDA)圈子都炸开了锅。这无异于在由Cadence、Mentor Graphics&#…...

开关电源EMC设计:从原理到实践的关键技术

1. 开关电源EMC设计基础 开关电源因其高效率和小型化优势,在现代电子设备中广泛应用。然而,高频开关动作带来的电磁干扰(EMI)问题不容忽视。作为一名电源工程师,我经常需要面对各种EMC挑战。记得有一次,我们团队设计的工业电源模块…...

终极暗黑2存档编辑器:5分钟学会免费修改d2s文件的完整指南

终极暗黑2存档编辑器:5分钟学会免费修改d2s文件的完整指南 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 你是否曾因暗黑破坏神2的角色属性分配不当而懊恼?是否因稀有装备难以获取而沮丧?d2s…...

告别硬件依赖:用Virtual ZPL Printer构建完整的标签打印测试环境

告别硬件依赖:用Virtual ZPL Printer构建完整的标签打印测试环境 【免费下载链接】Virtual-ZPL-Printer An ethernet based virtual Zebra Label Printer that can be used to test applications that produce bar code labels. 项目地址: https://gitcode.com/gh…...

多重细胞因子检测及其技术综述

一、细胞因子概述细胞因子是一类由免疫细胞(如单核细胞、巨噬细胞、T细胞、B细胞及自然杀伤细胞等)及部分非免疫细胞(如内皮细胞、表皮细胞、成纤维细胞等)在相应刺激诱导下合成并分泌的小分子蛋白质,具有广泛的生物学…...

OpenClaw-Skills:模块化自动化技能库的设计、开发与编排实战

1. 项目概述与核心价值最近在GitHub上看到一个挺有意思的项目,叫blessonism/openclaw-skills。光看名字,你可能会有点摸不着头脑,这“OpenClaw”和“Skills”组合在一起,到底想干什么?作为一个在开源社区和自动化工具领…...

FPGA仿真库配置避坑指南:Xilinx 7系、Altera Cyclone V、Lattice ECP5在ModelSim 10.6d下的完整流程

FPGA仿真库配置避坑指南:Xilinx 7系、Altera Cyclone V、Lattice ECP5在ModelSim 10.6d下的完整流程 第一次在ModelSim 10.6d环境下配置FPGA仿真库时,我花了整整三天时间排查各种路径错误和权限问题。直到现在,我还清楚地记得那个深夜——当仿…...

物联网安全创业:从技术挑战到市场机遇的深度解析

1. 物联网安全创业的“冷”与“热”:一个从业者的深度观察作为一名在嵌入式系统和网络安全领域摸爬滚打了十几年的工程师,我几乎见证了物联网从概念炒作到遍地开花的全过程。每次和同行、投资人聊天,话题总绕不开两个极端:一边是对…...

中国地址生成器:快速生成真实地址数据的开发者利器

中国地址生成器:快速生成真实地址数据的开发者利器 【免费下载链接】chinese-address-generator 中国地址生成器 - 三级地址 四级地址 随机生成完整地址 项目地址: https://gitcode.com/gh_mirrors/ch/chinese-address-generator 在开发测试、数据填充、表单…...

在Android Termux中部署轻量级Docker环境:原理、部署与实战指南

1. 项目概述与核心价值最近在折腾移动设备上的开发环境,发现一个挺有意思的项目:George-Seven/Termux-Udocker。简单来说,它是在Android平台的Termux终端模拟器里,实现一个轻量级的、用户空间(User-Space)的…...

电源完整性设计:电容模型、去耦策略与测量验证实战解析

1. 电容与去耦:从概念到实战的深度解析上周我们聊了聊去耦电容在电源完整性设计中的一些基本概念和时机选择,算是开了个头。这周咱们继续深入,把这块硬骨头啃得更透一些。很多工程师,尤其是刚入行的朋友,常常觉得电容选…...

基于Rust的飞书多智能体协作平台:中文联网搜索与智能交接实战

1. 项目概述:一个面向飞书深度集成的智能体协作平台 如果你正在寻找一个能无缝接入飞书、支持中文联网搜索、并且能让多个AI智能体协同工作的本地化开源项目,那么 hongyuatcufe/moltis-feishu 这个分支绝对值得你花时间研究。它不是一个简单的聊天机器…...

Midjourney版本战争白皮书(V7终结篇 vs V8统治纪元):从token消耗策略、种子可控性、多主体一致性到商用合规链路的断代式升级

更多请点击: https://intelliparadigm.com 第一章:V7终结篇与V8统治纪元的战略分水岭 V7 版本的正式 EOL(End-of-Life)标志着一个技术周期的谢幕,而 V8 的全面 GA(General Availability)则开启…...

Midjourney 2026将取消/imagine?不,它正悄悄部署「自然语言-图像-3D资产」三合一原生工作流(附实测对比数据)

更多请点击: https://intelliparadigm.com 第一章:Midjourney 2026战略转向:从文本生成图像到原生三维资产创作范式跃迁 Midjourney 在 2026 年正式终止对纯 2D 图像输出的默认支持,全面启用 v6.5 “Tesseract” 引擎&#xff0c…...

windows构建mamba环境

收集必要的whl文件 在某🐟等平台或者是精密搜索找到以下whl文件 对于3.10 python triton-2.0.0-cp310-cp310-win_amd64.whl causal_conv1d-1.1.1-cp310-cp310-win_amd64.whl mamba_ssm-1.1.3-cp310-cp310-win_amd64.whl 对于3.11 python FuouM/mamba-ssm-windo…...

最小扩张三角剖分:算法优化与计算几何实践

1. 最小扩张三角剖分问题概述在计算几何领域,最小扩张三角剖分(Minimum Dilation Triangulation, MDT)是一个经典的优化问题。给定平面上的n个点集P,MDT的目标是找到一个三角剖分T,使得对于P中的任意两点s和t&#xff…...

NotebookLM未公开的Obsidian插件桥接协议(内部文档泄露版),仅限前500名技术决策者获取

更多请点击: https://intelliparadigm.com 第一章:NotebookLM与Obsidian整合的架构全景图 NotebookLM(Google 推出的 AI 原生研究助手)与 Obsidian(本地优先、双向链接的知识图谱工具)的整合,正…...

云原生监控一体化实践:从零部署mco实现指标、日志、追踪统一管理

1. 项目概述:一个面向现代容器化应用的开源监控解决方案最近在梳理团队的技术栈,发现随着微服务和Kubernetes的普及,传统的监控体系越来越力不从心。我们需要的不仅仅是对主机和进程的监控,更需要能深入理解容器、Pod、Service以及…...

JPlag代码抄袭检测:你的学术诚信守护神

JPlag代码抄袭检测:你的学术诚信守护神 【免费下载链接】JPlag State-of-the-Art Source Code Plagiarism & Collusion Detection. Check for plagiarism in a set of programs. 项目地址: https://gitcode.com/gh_mirrors/jp/JPlag 你是否曾为学生的代码…...

Go语言构建高效命令行工具集:从设计到工程化实践

1. 项目概述:一个“好用的”开源工具集最近在GitHub上闲逛,发现了一个挺有意思的仓库,叫ImGoodBai/goodable。光看这个名字,就透着一股子“实用主义”的气息——“好用的”。作为一名常年混迹于开源社区,喜欢折腾各种工…...

深度解析开源项目:Cursor Pro破解工具技术架构与实战应用完整指南

深度解析开源项目:Cursor Pro破解工具技术架构与实战应用完整指南 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reach…...

原生TypeScript待办清单:纯前端架构、观察者模式与拖拽排序实践

1. 项目概述:一个由AI辅助构思的现代化待办清单最近在整理个人项目时,我重新审视了一个之前用TypeScript写的待办清单应用。这个项目的初衷很简单:我需要一个极简、快速、完全由我掌控的待办工具,它不需要登录,数据就存…...