CUDA Academy · 강의

유효 대역폭 측정하기

달성한 처리량과 최대 처리량을 비교합니다.

레슨 4/413개 단계

유효 대역폭 측정하기은(는) CoddyKit의 무료 CUDA Academy 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 CUDA Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. CUDA Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

이론에서 수치로

메모리 병합은 도움이 되지만, 실제로 효과가 있는지 입증해야 합니다. 이를 정확히 보여 주는 지표는 커널의 초당 기가바이트 단위 유효 대역폭입니다.

유효하다는 것의 의미

유효 대역폭은 커널에 실제로 필요했던 바이트 수를 실행 시간으로 나눈 값입니다. 낭비된 라인이 아니라 유용한 작업량을 반영합니다.

간단한 공식

읽은 바이트 수와 쓴 바이트 수를 더한 다음 경과한 초로 나누십시오. 이 비율이 달성한 처리량입니다.

double gbps = (bytesRead + bytesWritten) / seconds / 1e9;

이벤트로 시간 측정하기

CUDA 이벤트로 커널의 앞뒤를 감싸십시오. CPU 측 시계의 잡음 없이 GPU 작업 시간을 정확하게 측정할 수 있습니다.

cudaEventRecord(start);
myKernel<<<g, b>>>(...);
cudaEventRecord(stop);

경과 시간 읽기

종료 이벤트에서 동기화한 다음 CUDA에 시간 차이를 요청하십시오. 결과는 밀리초로 반환되므로 공식에 대입하기 전에 1,000으로 나누어야 합니다.

float ms;
cudaEventElapsedTime(&ms, start, stop);

바이트 수 파악하기

n개의 실수에 대해 C = A + B라면 2n개를 읽고 n개를 쓰므로 총 3n개의 실수가 이동합니다. 여기에 4를 곱하면 이동한 바이트 수가 됩니다.

size_t bytes = 3 * n * sizeof(float);

최대치 찾기

모든 GPU에는 이론적 최대 대역폭이 명시되어 있습니다. 유효 대역폭 수치는 이 상한에 대한 비율로 보아야 의미가 있습니다.

효율 비율

유효 대역폭을 최대 대역폭으로 나누어 백분율을 구하십시오. 메모리 대역폭에 묶인 병합된 커널은 대개 최대치의 70~90%에 도달하지만, 보폭이 있는 커널은 훨씬 낮은 수준으로 떨어집니다.

먼저 예열하기

첫 번째 실행에는 일회성 설정 비용이 들어갑니다. 커널을 한 번 실행해 예열한 다음 여러 번 시간을 측정하고 평균을 내어 안정적인 수치를 얻으십시오.

프로파일러로 확인하기

Nsight Compute는 메모리 처리량을 직접 보고하므로 계산 결과를 확인할 수 있습니다. 또한 메모리 병합이 나빠서 낭비되는 바이트도 표시합니다. 🔧

결정에 활용하기

비율이 낮다면 메모리가 병목이므로 메모리 병합과 배치를 개선해야 합니다. 비율이 높다면 속도를 높일 다른 원인을 찾아보십시오.

빠른 확인

유효 대역폭을 계산하십시오.

복습

이제 이벤트를 사용해 유효 대역폭을 측정하고, 이를 최대 대역폭과 비교하며, 그 비율로 메모리가 병목인지 판단할 수 있습니다. 🎉

무료로 시작

AI 튜터와 함께 C++을(를) 배우세요 — 무료

브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.

코스
30
레슨
120

자주 묻는 질문

“유효 대역폭 측정하기” 강의는 무료인가요?

네 — “유효 대역폭 측정하기” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 CUDA Academy 강의 전체를 잠금 해제할 수 있습니다. CUDA Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“유효 대역폭 측정하기”에서 뭘 배우나요?

달성한 처리량과 최대 처리량을 비교합니다. 브라우저에서 직접 실행하는 실습 코드로 CUDA Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

CUDA Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 CUDA Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.

“유효 대역폭 측정하기” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 CUDA Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 CUDA Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 메모리 트랜잭션이란
  2. 결합 읽기와 보폭 읽기
  3. 배열 구조와 구조체 배열 비교
  4. 유효 대역폭 측정하기
← CUDA Academy(으)로 돌아가기