通过icc或gcc编译和链接mkl库的性能是否不同



我找不到关于这个主题的任何信息,当运行一个通过gcc或icc编译和链接的程序时,运行时性能是否不同?

(我的假设是该程序在英特尔体系结构上运行)

因为这两个编译器都受到MKL的官方支持,并且它们链接了相同的库,如libmkl_core.alibmkl_core.so,这些库为MKL做实际工作。MKL操作的性能应该相同。当然,您自己编写的代码可能会有所不同,因为它们是由不同的编译器编译的。

编辑

MKL被设计为一个C库。大多数API都是预编译的,设计用于在大的输入数据上运行,这需要相对较长的运行时间。调用API的方式不会对性能产生很大影响。

有内联代码和助手marcos通过。例如,mkl_direct_call.h包含用于小矩阵乘法的内联代码/marco,小矩阵(大小为~20或更小)可以通过该代码获得性能改进。因此,当涉及到这一部分时,您可能会看到性能差异。有关详细信息,请参阅以下链接。

针对小问题改进"英特尔MKL"性能:MKL_DIRECT_CALL 的使用

直接呼叫的限制

相关内容

最新更新