你好,关于online safe softmax的速度,貌似并没有明显提升
lzcchl opened this issue · 2 comments
lzcchl commented
https://github.com/DefTruth/CUDA-Learn-Notes/tree/main/kernels/softmax
我看了你的实验结果,和我测试的结果也基本一致,就是online safe softmax相对于safe softmax的速度提升不明显,尤其是使用f32x4的情况下,速度基本一致,请问这是为什么?
DefTruth commented
这是由于softmax本质上是访存密集型算子,按照论文中的数据,只要在H比较大,比如>=10^4的时候,才有会有大约20%的提升。我更新了一下softmax让online softmax支持,H=2048和4096的测试。更大的H,需要增加新的kernel支持。在H=2048的时候。
----------------------------------------------------------------------------------------------------
S=4096, H=2048
----------------------------------------------------------------------------------------------------
out_f32x4(per): ['0.00018239 ', '0.00057175 ', '0.00027274 '], time:0.01603603ms
out_f32x4(safe): ['0.00018239 ', '0.00057175 ', '0.00027274 '], time:0.02082586ms
out_f32x4(safe+online): ['0.00018239 ', '0.00057175 ', '0.00027274 '], time:0.01795769ms
out_f32_th(per): ['0.00018239 ', '0.00057175 ', '0.00027274 '], time:0.06706953ms
----------------------------------------------------------------------------------------------------
0.0201 -> 0.0179, 大约13%的提升。
lzcchl commented
谢谢大佬!