728x90
반응형
CUDA의 내장 변수를 사용해 스레드가 특정 데이터에 정확히 접근하도록 하는 인덱스 계산 방법을 스레드 인덱싱(thread indexing)이라고 한다. 오늘은 2D 블록 내 스레드 인덱싱에 대해 정리를 하고자 합니다.
* Global Thread ID(전역 번호) : CUDA에서 각 스레드를 전역적으로 고유하게 식별할 수 있도록 정의된 ID를 의미함
Global Thread ID는 스레드 ID(threadIdx), 블록 ID(blockIdx), 블록의 크기(blockDim)를 사용해 계산합니다.
2차원 블록(2D block)은 다음 그림으로 간단하게 정의할 수 있습니다.
thread(x, y)의 전역 번호는 아래 두 항목의 합입니다.
- 자신이 속한 1차원 하위 블록 앞까지의 스레드 갯수 = blockDim.x * threadIdx.y
- 자신이 속한 1차원 하위 블록 안에서 자신의 스레드 번호 = threadIdx.x
'CUDA' 카테고리의 다른 글
CUDA 큰 벡터의 합 - 공부하는 도비 (0) | 2025.01.21 |
---|---|
CUDA 스레드 레이아웃 설정 및 커널 호출<<<>>> - 공부하는 도비 (0) | 2025.01.21 |
CUDA Pitch, cudaMallocPitch() - 공부하는 도비 (0) | 2025.01.09 |
CUDA 디바이스 메모리 할당, 초기화 및 해제 - 공부하는 도비 (0) | 2025.01.09 |