이 실행 CUBLAS의 내 결과입니다 각 GPU (테슬라 M2050)에 대한 2 개 스트림을 사용하여 4 개 GPU에서 DGEMM 성능 DGEMM : 내 결과를 테스트 한 그들은 괜찮CUBLAS 쿼리
; 기본 스트림을 사용하는 버전과 비교할 때 높은 Gflops 값에 대해 우려하고 있습니다. 나는 공식 사용 플롭의 계산 오전 : 다중 스트림을 사용하는 버전
Gflops = {2.0*10^-9*(N^3+N^2)}/elapsed_time_in_s
를 내가 어떤 식 으로든이 공식을 수정해야합니까?
은 호스트에서 데이터 전송, 커널 실행 및 장치에서 호스트로 데이터 전송을 초 단위로 수행하는 데 걸리는 시간입니다 (위의 수식의 분모 임). 올리지 엔비디아에 대한 포럼 - http://forums.nvidia.com/index.php?showtopic=219910&st=0#entry1350908
편집 : @talonmies의 의견에 따라, 나는 시간을 계산하기 전에 cudaStreamSynchronize
을 추가하고, 결과는 다음과 같다 :
감사합니다,
Sayan
"4 GPU에서 실행 중"이라고 말하면 DGEMM 작업의 의미는 무엇입니까? DGEMM을 4 대 이상의 기기로 나눠 주시겠습니까? – talonmies
각 GPU에 대해 4 부분으로 데이터를 분할하고 (각 GPU에서) 청크에서'cublasdgemm'을 실행 중입니다 ... – Sayan
단일 C2050은 약 550 GFLOP/초 ** 피크 ** 또는 약 2200 GFLOP/초를 제공합니다 double precision의 경우 4 ** peak **에 대해 DGEMM은 피크보다 상당히 낮습니다.) 따라서 스트림의 경우 타이밍이 잘못되었다고 추측 할 수 있습니다. (아마도 기본 스트림의 경우 동기화 된 것이 아마도 비동기입니다.) FLOP/s 계산은 계산 방법에 관계없이 변경되지 않아야합니다. – talonmies