티스토리 뷰

Armadillo C++ vs. Julia vs. Python

모두 행렬곱에서 OpenBLAS parallelism을 이용하는 듯.
(AMD기반 멀티코어 리눅스(CPU 4개, 총 64코어)에서 CPU 이용률이 모두 6000% 이상).


테스트 수식:
res = M*transpose(M)


아래는 단적인 결과 예 (통계 처리 고려 안 함):

Armadillo C++:
20000x20000: 30.961 sec.
30000x30000: 101.652 sec.


Julia (OpenBLAS):
20000x20000: 108.910 sec.
30000x30000: 365.130 sec.


Python (OpenBLAS):
20000X20000: 86.677 sec.
30000x30000: 310.948 sec.


모두 밑단에서 OpenBLAS가 연산을 해주기 때문에 Julia와 Python은 큰 차이가 없는 듯
C++이 약 3배 정도 빨랐다.


댓글