128B = 메모리 트랜잭션 단위 ( Load / Store granularity )
즉, 128B = 메모리에서 한 번에 얼마를 가져오는가
128B 는 작아보이지만, GPU 메모리 트랜잭션에서는 꽤 큰 단위
coalescing 은 작은 연산에만 적용되는 것이 아닌, 대규모 커널 전체에서 매 사이클마다 반복적으로 발생하는 필수 규칙,
연산의 크기와 별개로, warp 가 한 번에 어떤 패턴으로 로드하느냐가 핵심
다루는 텐서가 MB, GB 단위이고, 커널 한 번의 실행으로 수십 ~ 수백 GB/s 메모리 대역폭의 사용, 128 B 는 이에 비해 작아보임
GPU 하드웨어는
L1 / L2 에서 SM 으로 보내는 최소 granularity 를 프로세서의 SIMD 실행 단위와 맞추기 위해 이 정도로 정해둔 것
float 4B * 32 threads = 128 B
딱 warp 가 가장 흔히 로드하는 1 element per thread 패턴이 128 B 하나로 깨끗하게 들어감
GPU 에선, 큰 연산 전체가 warp 단위로 잘게 쪼개짐, 각 warp 는 매번 128B 단위로 메모리르를 가져옴
128B 가 너무 작아서 큰 연산에서 의미가 줄어들지 않나? 에 대해
대형 연산이 수백만 번의 작은 128B 트랜잭션으로 이뤄짐, 그 각각에서 pattern 이 유지되어야 함
'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 |
| coalescing / stride 접근 / warp 메모리 패턴 QUIZ (0) | 2025.11.17 |
| Thread / Block / Grid / Warp 개념 퀴즈 (0) | 2025.11.17 |