퀴즈 1 — grid / block / thread 관계
N = 1000, blockDim.x = 64 로 커널을 런치한다.
int grid_size = (N + block_size - 1) / block_size;
<<<grid_size, block_size>>>
❓ Q1-1. 실제 블록 개수(grid_size)는 몇 개인가?
퀴즈 2 — global thread id 계산
다음과 같이 런치했다고 하자:
<<< gridDim.x = 4, blockDim.x = 32 >>>
즉:
- block 4개
- block당 thread 32개
❓ Q2-1. blockIdx.x = 2, threadIdx.x = 5 라면 global_id(gid)는?
퀴즈 3 — warp grouping
blockDim.x = 96 인 블록을 띄웠다.
❓ Q3-1. 이 블록 안에 warp은 몇 개 생기는가?
❓ Q3-2. threadIdx.x = 68 은 몇 번째 warp인가?
(warp 크기 = 32)
퀴즈 4 — 마지막 블록에서 thread drop
N=100 이고 blockDim.x=32일 때,
grid_size = (100 + 32 - 1) / 32 = 4 → block 4개
각 block이 담당하는 global id 범위는?
❓ Q4-1. block 0: global id 범위
❓ Q4-2. block 1: global id 범위
❓ Q4-3. block 2: global id 범위
❓ Q4-4. block 3: global id 범위
퀴즈 5 — 잘못된 이해 잡아내기
다음 중 틀린 설명은?
- blockDim.x 는 “블록 내부 스레드 총 개수”다.
- warp 은 32개 스레드를 묶은 실행 단위다.
- blockDim.x 가 32보다 작으면 warp 이 여러 개 생긴다.
- global_id = blockIdx.x * blockDim.x + threadIdx.x 이다.
'GPU-KERNEL' 카테고리의 다른 글
| SHARED MEMORY BANK CONFLICT 퀴즈 (0) | 2025.11.18 |
|---|---|
| Shared memory bank ( warp 와 bank 의 갯수는 하드웨어-레벨에서 설계적으로 32개로 맞춘 것 ) (0) | 2025.11.17 |
| 중요!!! 트랜스액션 ( 트랜잭션 ) 기준 확인 완료? warp - segment - transaction (0) | 2025.11.17 |
| 128B 트랜잭션의 개념 잡기, (0) | 2025.11.17 |
| coalescing / stride 접근 / warp 메모리 패턴 QUIZ (0) | 2025.11.17 |