Page 488 - 《软件学报》2025年第8期
P. 488
王昊天 等: MTTorch: 面向 MT-3000 芯片和 Transformer 模型的 PyTorch 算子库实现与优化 3911
4 400 6 600 3 300
CPU 标准差 CPU 标准差 CPU 标准差
3 MTTorch 标准差 300 5 MTTorch 标准差 500 2 MTTorch 标准差 200
4 400
2 200 3 300 1 100
P source 1 100 标准差 P source 2 200 标准差 P source 标准差
0 0 1 100 0 0
0 0 −1 −100
−1 −100 −1 −100
−2 −200 −2 −200 −2 −200
2 18 2 20 2 22 2 24 2 26 2 28 2 18 2 20 2 22 2 24 2 26 2 28 2 18 2 20 2 22 2 24 2 26 2 28
数据量 数据量 数据量
(a) layer_norm (b) GELU (c) log_softmax_back
10 1 000
4 CPU 标准差 400 4 CPU 标准差 400
3 MTTorch 标准差 300 8 800 3 MTTorch 标准差 300
6 600 2 200
2 200
P source 1 100 标准差 P source 4 400 标准差 P source 1 0 100 标准差
0
0 0 2 200 −1 −100
−1 −100 0 0 −2 −200
−2 −200 −2 −200 −3 −300
2 18 2 20 2 22 2 24 2 26 2 28 2 18 2 20 2 22 2 24 2 26 2 28 2 18 2 20 2 22 2 24 2 26 2 28
数据量 数据量 数据量
(d) mul/div (e) log_softmax (f) add/sub
2.0 200 3 300 5 20 000
1.5 CPU 标准差 150 CPU 标准差 200 4 CPU 标准差 15 000
MTTorch 标准差
MTTorch 标准差
MTTorch 标准差
1.0 100 2 3
100
0.5 50 1 2 10 000
P source −0.5 0 0 −50 标准差 P source 0 50 标准差 P source 1 5 000 标准差
−1.0 −100 −1 0 0 0
−1.5 −150 −100 −1 −5 000
−2.0 −200 −2 −200 −2
2 18 2 20 2 22 2 24 2 26 2 28 2 18 2 20 2 22 2 24 2 26 2 28 2 18 2 20 2 22 2 24 2 26 2 28
数据量 数据量 数据量
(g) ReLU_back (h) softmax (i) mm
2.5 250 2.0 200
4 CPU 标准差 400 2.0 CPU 标准差 200 1.5 CPU 标准差 150
MTTorch 标准差 MTTorch 标准差 MTTorch 标准差
3 300 1.5 150 1.0 100
1.0 100
2 200 0.5 50 0.5 50
P source 1 100 标准差 P source 0 0 标准差 标准差 P source 0 0 标准差
0 0 −0.5 −50 −0.5 −50
−1.0
−100
−1 −100 −1.0 −100 −1.5 −150
−1.5
−150
−2 −200 −2.0 −200 −2.0 −200
2 18 2 20 2 22 2 24 2 26 2 28 2 18 2 20 2 22 2 24 2 26 2 28 2 18 2 20 2 22 2 24 2 26 2 28
数据量 数据量 数据量
(j) ReLU (k) sum (l) softmax_back
5 500
4 400
3 300
P source 2 1 200 标准差 标准差
100
0 0
−1 CPU 标准差 −100
MTTorch 标准差
−2 −200
2 18 2 20 2 22 2 24 2 26 2 28
数据量
(m) GELU_back
图 10 15 个核函数在不同输入数据规模下使用 CPU 和 DSP 运算时间和标准差对比
4.3.2 DSP 算子与 GPU 算子性能效率对比
进一步, 本文设计实验对比了 MTTorch 和 PyTorch 中原生的 CUDA 算子的性能效率. MT-3000 每个 DSP 核

