为配合Intel CPU 的测试,选用英特尔数学核心函数库(英特尔MKL)。该函数库是经过高度优化和广泛线程化的数学例程函数库,专为需要高性能的科学、工程、天体物理及分子动力模拟等领域的应用而设计。它能针对不同的处理器采用不同的线程处理方式,在科学计算领域,使处理器的运算性能得以充分发挥。该函数库中包括了经过高度优化的BLAS 例程,其提供的性能改善非常明显,远远超出其他替代性实现[6],MKL BLAS 函数库能发挥Pentium D830 处理器在矩阵运算中的最高运算能力。
Intel MKl 库函数内容极其丰富,涵盖线性代数、随机数产生和FFT 等方面,为测试CPU 的矩阵运算性能,本文采用线性代数函数库(BLAS),该函数库包括BLAS1, BLAS2,BLAS3 三种类型的运算,本文选用BLAS3(matrix- to-matrix)进行运算。Intel MKL-blas 运算代码如下://矩阵A 与矩阵B 相乘并将结果返回到主机Cintelblas 矩阵cblas_sgemm(CblasColMajor,CblasNoTrans,CblasNoTrans, HA,
WB, HB, alpha, h_A, HA, h_B, HB, beta, Cintelblas, HC) ;编译MKL 库函数需要在函数中添加MKL.H 头文件,将应用程序的lib 库指向MKL 函数库,连接器命令行添入cublas.lib mkl_c.lib mkl_c_dll.lib mkl_intel_thread.lib,为使测算函数运行时间的准确还需调用函数QueryPerformance Frequency();QueryPerformanceCounter()计算CPU 时钟的开销周期数。