DNN计算时会用到大量矩阵计算,对比过向量化加并行以及mkl,发现mkl在速度上要快。
业务需要多路并发的情况下,建议手动设置mkl的线程数,因为任由编译器自己来设置,可能导致线程等待比较严重。比如机器核心为18核心,业务开启5路,可以手动设置mkl线程数为2-4。
在AMD和intel处理器上分别测试mkl性能,发现在intel上的效率优于amd不少,大家懂的。。
下面就总结下vs2012上使用mkl的方法。
1.安装完vs2012再安装intel编译器(网上能下到),intel编译器会自动集成到vs2012中(安装的时候注意一下就行了)。
2.编译程序时使用intel编译器,配置属性->General->Platform Toolset:Intel C++ Compiler XE 13.0
3.配置属性->Intel Performance Library:Use MKL选择Parallel标志将使用mkl的并行化。
业务需要多路并发的情况下,建议手动设置mkl的线程数,因为任由编译器自己来设置,可能导致线程等待比较严重。比如机器核心为18核心,业务开启5路,可以手动设置mkl线程数为2-4。
在AMD和intel处理器上分别测试mkl性能,发现在intel上的效率优于amd不少,大家懂的。。