2012-03-04 3 views
4

nvidia에 따르면. cublasZgemm은 Intel MKL보다 6 배 빠릅니다.cublas cublasZgemm() 예상보다 느림

그러나 내 컴퓨터 (i7 2600, Nvidia gtx560, OS : Linux 64 비트)에서 cublasZgemm은 MKL보다 약간 느립니다.

numpy를 MKL 10.3에 연결하는 enthought python distribution과 함께 제공되는 numpy.dot()을 사용합니다.

cublasZgemm을 사용하는 행렬 곱셈 함수는 공유 라이브러리에서 컴파일되며 python 스크립트에서 ctypes를 사용하여 호출됩니다.

두 개의 1024x1024 복소수 행렬을 곱하면. numpy.dot()은 84ms가 걸렸습니다. ctypes 함수 호출은 110ms를 소비하고 cublasZgemm() 부분은 97ms를 소비했습니다.

왜 cublassZgemm이 nvidia가 명시한 속도만큼 빠르지 않은지 궁금합니다.

+2

NVIDIA가 벤치 마크 번호를 생성하는 데 사용한 것보다 배정도가 낮은 GPU를 사용하면 성능이 약간 느려집니다. – talonmies

+0

@talonmies의 대답을 확장하기 위해 Tesla 카드에 사용되지 않는 Fermi GPU는 인위적으로 칩의 성능에 비해 1/4 배의 배정도 속도로 제한되었습니다. 나는 당신이 어떤 유형의 숫자를 곱하고 있는지 언급하지 않았기 때문에 그가 대답으로 대답을 입력하지 않았다고 추정한다. –

+1

@RogerDahl : 아니요, 그는 했어요 - ZGEMM은 배정도 복잡합니다. – talonmies

답변

4

왜 cublassZgemm이 nvidia만큼 빠르지 않은지 궁금합니다.

짧은 대답은 성능 수치를 생성하기 위해 NVIDIA에서 사용했던 것보다 훨씬 느린 GPU를 사용하여 zgemm의 벤치마킹을 수행했기 때문입니다. 귀하의 GTX560은 아마 번 8 번 당신의 링크에 NVIDIA에서 사용 된 Telsa M2090보다 더블 정밀도 성능이 느립니다.

관련 문제