[CUDA RT Series 1] Index + Methodology

CUDA RT Series Index

Ray Tracing (RT) in One Weekend(출처2)의 내용을 혼자 공부하면서 번역(출처 1)을 해보았다. 지난 RT 시리즈를 작성하면서 CUDA를 사용한 병렬화에 아주 적합한 코드인듯하여서 인터넷에 검색해 보니 역시나 병렬화 코드가 공개되어 있다 (출처 3). 개인적으로 CUDA 코드를 작성하는 방법에 대한 시리즈를 한번 작성해보고 싶었는데 출처 3에 좋은 내용이 있어서 역시나 공부를 하면서 번역을 해볼 계획이다.

CUDA는 NVIDIA에서 자사 GPU (NVIDIA GPU)에서 사용하기 위해 개발한 API이다 (출처 4). GPU의 구조상 단순 병렬화에 최적화되어 있다. 상세한 GPU 구조에 대한 설명을 인터넷에서 공개된 자료나, 이전에 작성한 GPGPU 시리즈(출처5)를 읽으면 된다. 출처 3을 읽고 크게 아래와 같이 시리즈를 작성하면 될 것 같아서 정리해보았다. 아래 Index는 시리즈를 작성하면서 약간 변경이 될 수도 있다.

  • Series 1: Index + Methodology (Link)
  • Series 2: First Image (Link)
  • Series 3: Vector (Link)
  • Series 4: Classing Up the GPU (Link)
  • Series 5: Manage Your Memory (Link)
  • Series 6: It’s All Random (Link)
  • Series 7: Iteration vs. Recursion (Link)
  • Series 8: Metal (Link)
  • Series 9: Dielectrics + Snell’s Law (Link)

Methodology

해당 시리즈에서 작성하는 CUDA 코드를 기존에 작성한 CPU 코드와 성능 비교를 해 볼 예정이다. CPU 세대, GPU 세대, OS 버전, 드라이버 버전 등으로 인해서 결과 차이가 발생할 수 있다. 그래서 성능 측정을 진행한 실험 환경을 간단히 정리해보았다.

  • CPU: Intel(R) Xeon(R) CPU E3-1230 v3 @ 3.30GHz
  • GPU: GeForce GTX 1060 6GB
  • OS: Ubuntu 18.04 (18.04.1-Ubuntu)
  • Nvidia Driver Version: 435.21
  • NVCC Version: V9.1.85

MK: 이번에도 열심히 공부하면서 정리해볼 계획이다. 제목에서 (번역)이라는 단어를 제외했다. 번역도 하겠지만 개인적으로 알고 있는 내용도 많이 추가해보고 싶은 마음에 제거하였다. 대부분의 내용은 출처 1, 출처 2에서 나온 내용이다.  이번 글은 제발 3개월 안에 마무리 할 수 있으면 좋겠다.

출처

  1. https://mkblog.co.kr/2019/04/17/rt-in-one-weekend-series-1-index-and-overview/
  2. http://www.realtimerendering.com/raytracing/Ray%20Tracing%20in%20a%20Weekend.pdf
  3. https://devblogs.nvidia.com/accelerated-ray-tracing-cuda/
  4. https://en.wikipedia.org/wiki/CUDA
  5. https://mkblog.co.kr/2018/09/28/gpgpu-series-1-index-of-articles/

Leave a Comment