问题描述
发现相同的网络结构和输入图片,不同的网络参数,在跑前向计算时间差异有25倍(只有load的参数不一样,其他全部一致,环境也是一样的,代码也一样)。
经过排查,发现【同样大小的矩阵乘,MKL_SGEMM速度差距大】:
1) 使用MKL_VERBOSE=1观察,日志中只调用了MKL_SGEMM函数。而同样大小的矩阵乘,MKL_SGEMM速度差距非常大
a) 跑的慢的模型,如前两个GEMM,分别是849.51ms和75.78ms

b) 跑的慢的模型,如前两个GEMM,分别是114.44ms和1.46ms。差距在7倍到70倍左右

2) 跑的慢的模型,有300M;跑的快的模型只有200M
3) 因此,我们怀疑模型参数中0的数量,会影响GEMM的性能。统计了下参数中0的数量,跑的慢的模型有593个0,而跑的快的模型有1884个0.
请问除了0的个数外,还有其他因素会影响同样大小的矩阵乘的速度么