CUDA 공유 메모리 스위즐링으로 뱅크 충돌 제거, 전치 성능 2배 향상
CUDA Shared Memory Swizzling
CUDA 공유 메모리에서 뱅크 충돌(bank conflict)은 성능 저하의 주요 원인입니다. 이 글은 행렬 전치(transpose) 커널을 예로 들어, 패딩(padding)과 스위즐링(swizzling) 기법으로 뱅크 충돌을 피하는 방법을 설명합니다. 8192x8192 행렬 전치 성능을 비교한 결과, 스위즐링 기법이 뱅크 충돌이 있는 기본 커널보다 약 2배 빠른 것으로 나타났습니다. 코드 예제와 성능 측정 결과를 통해 각 기법의 동작 원리와 효과를 자세히 보여줍니다.
스위즐링은 공유 메모리 뱅크 충돌을 제거하는 효과적인 방법으로, 패딩 없이도 높은 성능을 달성할 수 있습니다.