본문 바로가기

Parallel programming52

Shared Memory (4) - Matrix Transpose References Professional CUDA C Programming Contents Coalescing Global Memory Accesses Matrix Transpose Kernels Matrix Transpose with Shared Memory Matrix Transpose with Padded Shared Memory Matrix Transpose with Unrolling Shared Memory (1) Shared Memory (2) - Square/Rectangular Shared Memory Shared Memory (3) - Reduction with Shared Memory 지난 포스팅들에 이어 Shared Memory에 대한 4번째 포스팅입니다 Coalescing Glob.. 2022. 1. 22.
Shared Memory (3) - Reduction with Shared Memory References Professional CUDA C Programming Contents Reducing Global Memory Access Parallel Reduction with Shared Memory Parallel Reduction with Unrolling Parallel Reduction with Dynamic Shared Memory Effective Bandwidth 지난 두 포스팅에 이어서 Global Memory Access를 줄이기 위해 Shared Memory를 사용하는 것에 대해 알아보도록 하겠습니다. Shared Memory (1) Shared Memory (2) - Square/Rectangular Shared Memory Reducing Global Memory Ac.. 2022. 1. 20.
Shared Memory (2) - Square/Rectangular Shared Memory References Professional CUDA C Programming Contents Checking the Data Layout of Shared Memory Square Shared Memory Rectangular Shared Memory 지난 포스팅에 이어서 공유 메모리에 대한 내용에 대해서 더 알아보도록 하겠습니다. Share Memory (1) Share Memory (1) References Professional CUDA C Programming Contents Shared Memory (SMEM) Shared Memory Banks and Access Mode Configuring the Amount of Shared Memory Synchronization Volatile Qua.. 2022. 1. 19.
Shared Memory (1) References Professional CUDA C Programming Contents Shared Memory (SMEM) Shared Memory Banks and Access Mode Configuring the Amount of Shared Memory Synchronization Volatile Qualifier 이번 포스팅에서는 공유 메모리에 대해서 다시 한 번 알아보는 시간을 갖도록 하려고 합니다 ! Intro GPU 디바이스에는 다음과 같이 두 종류의 메모리 타입이 있습니다. On-board memory On-chip memory Global Memory는 크고, on-board 메모리이며 비교적 높은 latency를 갖고 있습니다. Shared Memory는 Global Memory.. 2022. 1. 18.
Unified Memory References Professional CUDA C Programming https://developer.nvidia.com/blog/unified-memory-in-cuda-6/ Contents Unified Memory Zero-Copy Memory & Unified Virtual Addressing Zero-Copy Memory & Unified Virtual Addressing References Professional CUDA C Programming Contents Zero-Copy Memory Unified Virtual Addressing Zero-Copy Memory 일반적으로 host는 device 변수에 직접 액세스할 수 없고, device는 host 변수에 직접 액세.. juns.. 2022. 1. 17.
Zero-Copy Memory & Unified Virtual Addressing References Professional CUDA C Programming Contents Zero-Copy Memory Unified Virtual Addressing Zero-Copy Memory 일반적으로 host는 device 변수에 직접 액세스할 수 없고, device는 host 변수에 직접 액세스할 수 없습니다. 하지만 여기에 한 가지 예외인 zero-copy 메모리가 있습니다. host와 device는 모두 zero-copy 메모리에 액세스할 수 있습니다. GPU 스레드들은 직접 zero-copy 메모리에 액세스할 수 있습니다. zero-copy 메모리를 커널 내에서 사용하면 다음의 몇 가지 이점을 얻을 수 있습니다. Leveragin host memory when there is insu.. 2022. 1. 15.
Pinned Memory References Professional CUDA C Programming Contents Pinned Memory Pinned Memory 할당된 Host 메모리는 기본적으로 pageable합니다. 즉, OS에 의해 host의 가상 메모리에서 다른 물리 메모리로 데이터를 이동하는 페이지 폴트(page fault) 동작이 일어날 수 있습니다. L1 캐시가 물리적으로 사용 가능한 메모리보다 훨씬 더 많은 on-chip 메모리를 제공하는 것처럼 가상 메모리는 물리적으로 사용 가능한 것보다 훨씬 더 많은 메모리를 제공합니다. GPU에서는 host OS가 데이터를 물리적으로 이동하는 시점을 제어할 수 없기 때문에 pageable한 host 메모리에 있는 데이터를 안전하게 액세스할 수 없습니다. pageable.. 2022. 1. 14.
CUDA Memory Model References Professional CUDA C Programming Contents CUDA Memory Model Memory Types Example for Static Global Memory 아래의 이전 포스팅에서 행렬곱 커널에 대해서 알아보며, CUDA의 메모리 타입에 대해서 언급을 했었습니다. CUDA의 메모리 Access와 Type (예제 : matrix multiplication) CUDA의 메모리 Access와 Type (예제 : matrix multiplication) References Programming Massively Parallel Processors Contents 메모리 액세스 효율 (compute-to-global-memory-access) Matrix Mult.. 2022. 1. 13.
Nested Reduction (Dynamic Parallelism) References Professional CUDA C Programming Contents Dynamic Parallelism Nested Reduction (reduction problem) 이번 포스팅에서는 지난 포스팅에서 살펴본 Sum Reduction을 동적 병렬(Dynamic Parallelism)을 사용한 커널로 구현할 예정입니다. Warp의 Branch Divergence (reduction problem) Warp의 Branch Divergence (reduction problem) References Professional CUDA C Programming Contents Parallel Reduction Neighbored vs Interleaved Approach Unrolling .. 2022. 1. 11.
WARP Execution References Professional CUDA C Programming https://docs.nvidia.com/gameworks/content/developertools/desktop/analysis/report/cudaexperiments/kernellevel/issueefficiency.htm Contents Warps 이해하기 Warp Divergence Resource Partitioning Latency Hiding Occupancy 지금까지 CUDA 프로그래밍과 GPU 아키텍처에 대해서 쭉 알아왔는데, Warp에 대해서 자세하게 살펴볼 기회가 없어서 이번에 Warp에 대해서 조금 더 공부하면서 이번 포스팅을 준비했습니다. 커널이 실행될 때, 소프트웨어의 관점에서는 커널의 모든 스레드들.. 2022. 1. 5.