Page 342 - 《软件学报》2026年第7期
P. 342
胡晓雯 等: 基于 CUDA Core 和 Tensor Core 的 CTRU-Prime 高吞吐量实现 3027
为简化表述, 下文中使用 cuda 乘实现代表使用 CUDA Core 实现的基于伪梅森数不完整 NTT 的多项式乘法, 使用
tensor 乘实现代表基于 Tensor Core 的教科书式多项式乘法.
文献 [12] 采用伪梅森数不完整 NTT 完成多项式乘法, 并提供了表 2 所示 CTRU-Prime 的 3 组参数的多项式
乘法的 C 语言实现. 如第 3.2.2 节所述, CTRU-Prime 在 R q 和 R q 2 上完成多项式乘法, 两者仅在域收缩阶段使用的
约减算法上存在差异. 因此, 本文将文献 [12] 中在 R q 上的多项式乘法 C 语言实现作为素阶数域上多项式乘法的
基准测试结果. 具体而言, 当 CTRU-Prime 的参数 n 分别设置为 653、761 和 1 277 时, R q 上的多项式乘法的平均
运行时间分别为 13.98 μs、14.53 μs 和 26.32 μs.
图 6 展示了在不同批处理大小下, cuda 乘实现的测试结果. 得益于 GPU 的高并发处理能力, 随着批处理大小
的增大, 多项式乘法的吞吐量显著提升. 当 n 分别为 653、761 和 1 277 时, 同基线测试结果相比, cuda 乘实现分别
达到 1.09–11.08 倍、2.02–256.13 倍和 2.86–256.98 倍的吞吐量. 当 n=653 时, 伪梅森数不完整 NTT 由基 2-NTT 和
基 3-NTT 混合而成, 这会在 GPU 实现过程中引入额外的分支执行, 因此同达到百倍加速级的两组其他参数相比,
n=653 仅达到 10 倍级. 随着批处理大小的增加, GPU 任务负载也随之增加, 在一定范围内, 更大的批处理大小可以
让 GPU 更好地利用其并行计算资源, 实际占用率也逐步增长. 当超过特定阈值后, GPU 处于饱和状态, 实际占用
率趋于理论占用率, 例如, n=761 的理论占用率为 62.5%, 批处理大小为 64、128、256、512 和 1 024 时, 实际占用
率分别为 20.06%、36.42%、49.62%、54.19% 和 56.72%. 当 GPU 处于饱和状态时, 核函数延迟与批处理大小呈
线性增长关系, 吞吐量增速逐渐放缓. 因此受实际占用率影响, 如图 6 所示, n=653, 761, 1277 当批处理大小分别达
到 32、256、256 后, 延迟开始与批处理大小成正比增加, 同时吞吐量的增长速率逐步下降. 此外, 将 cuda 乘实现
延迟与基线结果进行比较: n=653 在批处理大小为 32 之前延迟分别为基线结果的 1.75–3.44 倍; n=761, 1277 在批
处理大小小于 128 时, 在不同的批处理大小下, 延迟分别为基线结果的 42.31%–84.61% 和 35.02%–72.84%, 当批处
理大小超过 128 时, 延迟分别为基线结果的 1.22–3.93 倍和 1.13–3.89 倍.
60
1 200 Throughput Throughput speedup 250
speedup 10 50 Latency
1 000 Latency 8 40 C baseline latency 200
Latency (μs) 800 latency 6 4 Throughput speedup Latency (μs) 30 150 Throughput speedup
C baseline
600
100
20
400
200 2 10 50
0 0 0 0
1 2 4 8 16 32 64 128 256 512 1 024 1 2 4 8 16 32 64 128 256 512 1 024
Batch size Batch size
(a) n=653 (b) n=761
100 Throughput speedup 250
Latency
80 C baseline latency 200
Latency (μs) 60 150 Throughput speedup
100
40
20 50
0 0
1 2 4 8 16 32 64 128 256 512 1 024
Batch size
(c) n=1277
图 6 不同批处理大小的 cuda 乘实现吞吐量加速比与延迟
表 4 展示了 n=653 时两种 tensor 乘实现各个核函数的执行时间 (单位为 μs) 和相较于基线测试结果的加速比.
通用的 tensor 乘实现在不同的批处理大小上达到了 1.19–2.04 的加速比, 并在批处理大小为 8 时达到峰值. 横向比

