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
   338   339   340   341   342   343   344   345   346   347   348