2011-11-02 3 views
2

저는 CUDA 최적화에 대해 배우고 있습니다. 이 링크의 프레젠테이션을 발견했습니다 : Optimizing CUDA by Paulius Micikevicius. 이 프레젠테이션에서 CUDA : 메모리 성능, 전체 메모리 대역폭은 무엇입니까

, 그들은 약

MAXIMIZE 글로벌 메모리 대역폭

, 그들은 글로벌 메모리 유착이 대역폭을 향상시킬 것이라고 이야기한다.

내 질문에, 어떻게 전역 메모리 대역폭을 계산합니까. 누구든지 간단한 프로그램 예제를 통해 나를 설명 할 수 있습니까?

+1

http://stackoverflow.com/questions/7876006/how-to-calculate-the-achieved-bandwidth-of-a-cuda-kernel? – pQB

답변

7

이론적 인 대역폭은 하드웨어 사양을 사용하여 계산할 수 있습니다.

예를 들어, NVIDIA GeForce GTX 280은 메모리 클럭 속도 1,107 MHz 및 512 비트 폭 메모리 인터페이스를 갖춘 DDR RAM을 사용합니다. 이러한 데이터 항목을 사용하여, NVIDIA 지포스 GTX 280의 피크 이론적 메모리 대역폭 141.6 GB/초이다 :이 계산

enter image description here

, 메모리 클록 속도가 인터페이스, Hz로의 변환 곱 너비 (8로 나누어 비트를 바이트로 변환)와 이중 데이터 전송률로 인해 2를 곱합니다. 마지막으로이 제품을 109로 나누어 GB/초 (GBps)로 변환합니다.

유효 대역폭은 특정 프로그램 활동을 타이밍하고 프로그램에서 데이터에 액세스하는 방법을 알아서 계산됩니다. 이를 위해,이 방정식 사용

여기

유효 대역폭 = ((BR + BW)/109)/시간, 실효적인 대역폭이 GBps의 단위이며, 브롬 바이트의 수를 판독 커널 당 Bw는 커널 당 기록 된 바이트 수이며 시간은 초 단위로 표시됩니다.

자세한 내용은 CUDA 모범 사례 가이드를 참조하십시오.

+0

106은 어디에서 왔습니까? – veda

+0

정말 미안 해요. 나는 Google 수식을 사용해야 할 것입니다 ... Hz로 변환하는 것입니다. – Yappie

+0

최대화 대역폭에 대한 문구는 일반적으로 "대역폭이 이론적으로 적 으면 코드 성능이 계산에 제한되는 동안"을 의미합니다. 귀하의 목표는 이론적 인 대역폭 또는 그 근처에 있습니다 – Yappie