2011/01/30
Linear Algebra Library - Armadillo 테스트
오래전 Matrix 연산을 위해 라이브러리를 찾던 중 알게된 Armadillo 를 오늘에서야 테스트를 해 보았다. Armadillo는 사이트에 게시된 속도테스트 결과에 의하면 IT++ 와 NEWMAT 라이브러리와 비교해서 월등히 속도가 빠르다. 그래서 OpenCV 의 Matrix 연산과 비교해 보았다. OpenCV Library 는 2.2 버전을 사용하고 컴파일러는 Visual C++ 2010 버전을 사용하였다.
아래는 테스트에 사용한 코드이다.
결과는 의외로 OpenCV 가 더 빠른 결과가 나왔다.
아래는 위 코드를 열번 반복했을 때 처리 시간이다.
OpenCV Matrix : 1.158083ms
Armadillo Matrix : 0.946997ms
OpenCV Matrix : 1.125553ms
Armadillo Matrix : 0.977720ms
OpenCV Matrix : 0.932178ms
Armadillo Matrix : 1.334109ms
OpenCV Matrix : 1.124107ms
Armadillo Matrix : 1.342423ms
OpenCV Matrix : 0.794104ms
Armadillo Matrix : 0.934708ms
OpenCV Matrix : 1.126637ms
Armadillo Matrix : 1.333025ms
OpenCV Matrix : 1.125553ms
Armadillo Matrix : 1.332302ms
OpenCV Matrix : 1.120854ms
Armadillo Matrix : 1.331218ms
OpenCV Matrix : 1.124107ms
Armadillo Matrix : 1.337362ms
OpenCV Matrix : 1.121216ms
Armadillo Matrix : 1.332302ms
실제로 Armadillo 가 가장 빠른지 다른 라이브러리와도 테스트를 해 보아야겠다.
<
Original Post : http://neodreamer-dev.tistory.com/497
아래는 테스트에 사용한 코드이다.
CStopWatch watch;
int N = 1000;
// OpenCV
cv::Mat cvA = ( cv::Mat_<double>( 2, 2 ) << 1.0, 2.0, 3.0, 4.0 );
cv::Mat cvB = ( cv::Mat_<double>( 2, 1 ) << 1.0, 2.0 );
cv::Mat cvZ = ( cv::Mat_<double>( 2, 1 ) );
watch.Begin();
for ( int i = 0; i < N; ++i )
{
cvZ = cvA * cvB;
}
watch.End();
TRACE( "OpenCV Matrix : %.6fms \n", watch.GetElapsedMillisecond() );
// Armadillo
arma::mat arA = arma::zeros( 2, 2 );
arma::mat arB = arma::zeros( 2, 1 );
arma::mat arZ = arma::zeros( 2, 1 );
arA( 0, 0 ) = 1.0;
arA( 0, 1 ) = 2.0;
arA( 1, 0 ) = 3.0;
arA( 1, 1 ) = 4.0;
arB( 0, 0 ) = 1.0;
arB( 1, 0 ) = 2.0;
watch.Begin();
for ( int i = 0; i < N; ++i )
{
arZ = arA * arB;
}
watch.End();
TRACE( "Armadillo Matrix : %.6fms \n", watch.GetElapsedMillisecond() );
결과는 의외로 OpenCV 가 더 빠른 결과가 나왔다.
아래는 위 코드를 열번 반복했을 때 처리 시간이다.
OpenCV Matrix : 1.158083ms
Armadillo Matrix : 0.946997ms
OpenCV Matrix : 1.125553ms
Armadillo Matrix : 0.977720ms
OpenCV Matrix : 0.932178ms
Armadillo Matrix : 1.334109ms
OpenCV Matrix : 1.124107ms
Armadillo Matrix : 1.342423ms
OpenCV Matrix : 0.794104ms
Armadillo Matrix : 0.934708ms
OpenCV Matrix : 1.126637ms
Armadillo Matrix : 1.333025ms
OpenCV Matrix : 1.125553ms
Armadillo Matrix : 1.332302ms
OpenCV Matrix : 1.120854ms
Armadillo Matrix : 1.331218ms
OpenCV Matrix : 1.124107ms
Armadillo Matrix : 1.337362ms
OpenCV Matrix : 1.121216ms
Armadillo Matrix : 1.332302ms
실제로 Armadillo 가 가장 빠른지 다른 라이브러리와도 테스트를 해 보아야겠다.
<
Original Post : http://neodreamer-dev.tistory.com/497
Labels:
Armadillo
,
Linear Algebra
,
Matrix
,
OpenCV Matrix
,
TistoryOldPost
Subscribe to:
Post Comments
(
Atom
)
No comments :
Post a Comment