Monthly Archives: December 2016

[Article] Review and Comparative Study of Ray Traversal Algorithms on A Modern GPU Architecture

본 논문은 WSCG 2014 (홈페이지)에서 공개된 논문이다. 현재 진행하고 있는 과제와 관련되어서 읽고 정리하였다. Motivation Ray tracing은 light(빛) 또는 wave(전파)의 진행방향을 파악하는 기술이다. Ray tracing은 보통 screen에 object를 출력 할 때 많이 사용된다. 빛의 시작점 (보통 태양) 등에서 light (ray)가 진행되는 방향을 파악하고 현재 보이는 screen에 총 도달하는 ray의 개수를 파악하여 밝기와 색상을 결정하는 방법이… Read More »

[Article] Zorua: A Holistic Approach to Resource Virtualization in GPUs (Micro 2016)

Zorua는 2016년 MICRO (홈페이지)에 발표된 논문이다. 논문을 읽고 내용을 정리해 보았다. Motivation Thread Block (Cooperative Thread Array, CTA)는 thread의 묶음을 의미한다. 하나의 thread block은 보통 수십 또는 수백 개의 thread를 포함한다. Thread block은 GPU의 SM에 스케줄링 되는 최소단위이다. 한 SM에 총 실행 가능한 thread block의 개수는 크게 아래의 3가지 이유로 결정된다. Thread의 register 사용량 (SM의… Read More »

[NVIDIA GPU] Memory Coalescing이란? (Coalesced Memory Access)

지난번에 GPU의 메모리 종류에 대해서 정리를 하였다. Memory Coalescing에 대해서 작성을 하려고 하였으나 모르는 부분이 많아서 먼저 메모리 구조를 알아보았다. CUDA 코딩을 할 때 가장 중요한 부분이 memory coalescing이다. 실제로 성능에 큰 차이가 발생한다. 간단한 vector (x, y, z)를 access 하는 코드를 만들어서 성능 차이를 비교해보았는데 memory coalescing을 고려한 코드와 그렇지 않은 코드의 성능 차이가… Read More »