8
BLAS如何获得如此出色的性能?
出于好奇,我决定将自己的矩阵乘法函数与BLAS实现进行基准测试……我对结果并不感到惊讶: 自定义实施,1000 x1000矩阵乘法的10个试验: Took: 15.76542 seconds. BLAS实施,10次1000x1000矩阵乘法试验: Took: 1.32432 seconds. 这是使用单精度浮点数。 我的实现: template<class ValT> void mmult(const ValT* A, int ADim1, int ADim2, const ValT* B, int BDim1, int BDim2, ValT* C) { if ( ADim2!=BDim1 ) throw std::runtime_error("Error sizes off"); memset((void*)C,0,sizeof(ValT)*ADim1*BDim2); int cc2,cc1,cr1; for ( cc2=0 ; cc2<BDim2 ; ++cc2 …