Boost :: numeric :: ublas :: prod性能变得越来越慢,从1.51提升到1.60

时间:2016-11-28 14:02:06

标签: boost

我正在使用intel icpc编译器并通过ICC 13.1 / mkl / include / mkl_boost_ublas_matrix_prod.hpp标头使用Boost :: numeric :: ublas :: prod方法。从提升1.51升至1.60,性能变慢约30倍。除了提升1.60之外,我没有做任何其他改变。 知道为什么会这样吗?如果有任何建议,请告诉我。

使用以下代码:

#include <iostream>
#include <boost/timer.hpp>
#include <boost/numeric/ublas/matrix.hpp>
#include <mkl_boost_ublas_matrix_prod.hpp>

using namespace boost::numeric::ublas;
int main()
{



    boost::numeric::ublas::matrix<double> A(643, 13503);
       boost::numeric::ublas::matrix<double> B(13503, 413);
       boost::numeric::ublas::matrix<double> C(643, 413);

       for (int i = 0; i < A.size1(); ++i)
          for (int j = 0; j < A.size2(); ++j)
            A(i,j) = i+j;

       for (int i = 0; i < B.size1(); ++i)
          for (int j = 0; j < B.size2(); ++j)
            B(i,j) = i+j;
       std::cout << "starting multiplication" << std::endl;
       boost::timer t;
       noalias(C) = prod(A,B);
       //B = prod(A,B);

       std::cout << "ublas: " << t.elapsed() << std::endl;

 }

0 个答案:

没有答案