Page 343 - 《软件学报》2026年第7期
P. 343
3028 软件学报 2026 年第 37 卷第 7 期
较通用的 tensor 乘实现各个核函数的执行时间占比, initMA 和 Twmma 占比最多. initMA 需要频繁地和全局内存
交互, 造成了较长的访存延迟; Twmma 使用 Tensor Core 完成矩阵乘法, 当批处理大小超过阈值 8 后, 执行时间呈
线性增长, 这意味着在阈值处已充分利用 Tensor Core 的性能优势. 需要注意的是, 在通用的 tensor 乘实现中, 由于
零填充操作会导致计算资源和内存资源的浪费, 因此同 cuda 乘实现相比, 在批处理大小逐步增大过程中, 性能表
现逐渐落后. 面向相同公私钥的 tensor 乘实现, 针对 CTRU-Prime 中密钥封装算法, 使用相同的公钥封装不同的明
文消息, 由于其仅需进行一次矩阵排列且向量排列无需填充 0, 充分利用了 Tensor Core 的计算资源, 达到了 10.36–
177.24 的加速比, 其中, 当批处理大小为 512 时, 达到了 40.2 TOPS (Tera operations per second). 但是面向相同公私
钥的 tensor 乘实现存在场景受限的缺点.
表 4 n=653 下 cuda 乘实现与两种 tensor 乘实现比较
通用的tensor乘实现 面向相同公私钥的tensor乘实现 cuda乘实现
批处理大小 执行时间 (μs) 执行时间 (μs)
加速比 加速比 加速比
initMA initMB Twmma Merge initMA initMB Twmma Merge
1 6.14 2.94 9.92 3.07 0.63 - - - - - 0.57
2 7.17 3.01 10.20 3.07 1.19 - - - - - 1.09
4 11.17 3.68 14.46 3.42 1.71 - - - - - 2.18
8 19.46 3.74 28.06 3.65 2.04 - - - - - 4.09
16 37.89 3.81 71.68 3.90 1.91 6.14 3.07 9.22 3.17 10.36 7.27
32 74.75 3.87 166.69 4.10 1.79 6.21 3.07 9.22 3.07 20.74 9.30
64 246.78 3.84 355.14 4.26 1.47 6.14 3.07 9.15 3.81 40.35 10.04
128 490.50 4.10 696.32 5.44 1.50 6.14 3.07 9.86 4.67 75.36 10.04
256 973.82 5.12 1 382.08 7.17 1.51 6.14 4.10 12.45 6.11 124.27 10.82
512 1 940.86 7.78 2 746.56 11.26 1.52 6.14 5.76 19.30 9.18 177.24 10.96
5.3 优化效果评估
5.3.1 融合内核
本节使用 CUDA 默认流, 以第 4.3 节中的示例为例, 在 n=653 下评估融合内核技术带来的性能提升. 表 5 展
示了不同批处理大小下的核函数执行时间 (单位为 μs) 及节省的时间比率. 结果显示, 融合内核技术能显著减少核
函数的执行时间, 且随着批处理大小的增加, 节省的时间比率进一步提高. 当批处理大小为 1 024 时, 相较于批处理
大小为 2 时的 29.02%, 节省比率达到了 73.17%. 随着批处理大小的增大, 存储在全局内存中的待处理数据线性增
长. 融合内核技术通过有效减少对全局内存的访问次数, 在更大批处理的情况下表现出更优的性能. 这表明, 融合
内核技术在高吞吐量需求下尤为重要.
表 5 n=653 下融合内核和未融合内核的运行时间对比
延迟时间 (μs)
批处理大小 节省比率 (%)
融合版延迟 未融合版延迟
1 4.93 7.17 31.25
2 5.09 7.17 29.02
4 5.47 7.17 23.66
8 5.34 7.30 26.75
16 5.41 7.17 24.55
32 5.34 8.13 34.25
64 4.19 8.35 49.81
128 5.12 11.26 54.55
256 6.14 15.36 60.00
512 7.74 23.55 67.12
1 024 11.26 41.98 73.17

