Performance Analysis and Enhancing Techniques of Kd-Tree Traversal Methods on GPU

GPU용 Kd-트리 탐색 방법의 성능 분석 및 향상 기법

  • 장병준 (서강대학교 컴퓨터공학과) ;
  • 임인성 (서강대학교 컴퓨터공학과)
  • Published : 2010.02.15

Abstract

Ray-object intersection is an important element in ray tracing that takes up a substantial amount of computing time. In general, such spatial data structure as kd-tree has been frequently used for static scenes to accelerate the intersection computation. Recently, a few variants of kd-tree traversal have been proposed suitable for the GPU that has a relatively restricted computing architecture compared to the CPU. In this article, we propose yet another two implementation techniques that can improve those previous ones. First, we present a cached stack method that is aimed to reduce the costly global memory access time needed when the stack is allocated to global memory. Secondly, we present a rope-with-short-stack method that eases the substantial memory requirement, often necessary for the previous rope method. In order to show the effectiveness of our techniques, we compare their performances with those of the previous GPU traversal methods. The experimental results will provide prospective GPU ray tracer developers with valuable information, helping them choose a proper kd-tree traversal method.

광선-다각형 교차 계산은 광선 추적법 계산의 상당 부분을 차지하는 중요한 구성요소로서, 보편적으로 정적인 장면에 대해서는 kd-트리와 같은 공간 자료구조를 사용하여 교차 계산을 가속하여왔다. 최근 CPU에 비해 상대적으로 제한된 계산구조를 가지는 GPU에 적합하도록 변형된 kd-트리 탐색 기법이 몇 가지 제시되어 왔는데, 본 논문에서는 이러한 기존 방법을 보완할 수 있는 두 가지 구현 기법을 제안한다. 첫째, 트리 탐색을 위한 스택을 전역 메모리에 할당할 경우 전역 메모리 접근으로 인한 비용을 줄이고자 하는 캐쉬 적용 스택 방법과 둘째, 기존의 로프 방법의 문제점인 상당한 메모리 요구량을 줄이고자 하는 적은 깊이의 스택(short stack)을 사용한 로프 방법을 제시한다. 제안된 방법의 효용성을 보이기 위하여 기존의 GPU용 탐색 방법과의 성능 비교 분석을 수행한다. 이러한 실험 결과는 향후 GPU용 광선추적법 소프트웨어 개발자들이 상황에 맞는 적절한 kd-트리 탐색 방법을 선택할 수 있도록 해주는 중요한 정보를 제공하게 될 것이다.

Keywords

References

  1. T. Foley and J. Sugerman, "KD-tree acceleration structures for a GPU raytracer," Proc. of the ACM SIGGRAPH/EUROGRAPHICS Conference on Graphics Hardware, pp.15-22, 2005.
  2. D. R. Horn and J. Sugerman and M. Houston and P. Hanrahan, "Interactive k-d tree GPU ray tracing," Proc. of the 2007 Symposium on Interactive 3D Graphics and Games, pp.167-174, 2007.
  3. K. Zhou, Q. Hou, R. Wang, and B. Guo, "Real-Time KD-Tree Construction on Graphics Hardware," ACM Transactions on Graphics, vol.27, no.5, pp.126:1-126:11, Dec 2008.
  4. S. Popov, J. Günther, H. Seidel, and P. Slusallek, "Stackless KD-Tree traversal for high performance GPU ray tracing," Computer Graphics Forum, vol.26, no.3, pp.415-424, 2007. https://doi.org/10.1111/j.1467-8659.2007.01064.x
  5. I. Wald, "Realtime Ray Tracing and Interactive Global Illumination," PhD thesis, Computer Graphics Group, Saarland University, 2004.
  6. I. Wald, S. Boulos and P. Shirley, "Ray tracing deformable scenes using dynamic bounding volume hierarchies," ACM Transactions on Graphics, vol. 26, no.1, pp.1-18, 2007. https://doi.org/10.1145/1189762.1189763
  7. J. Gunther, S. Popov, H. -P. Seidel, P. Slusallek, "Realtime Ray Tracing on GPU with BVH-based Packet Traversal," In IEEE Symposium on Interactive Ray Tracing, pp.113-118, 2007.
  8. T. J. Purcell, I. Buck, W. R. Mark, and P. Hanrahan, "Ray tracing on programmable graphics hardware," ACM Transactions on Graphics, vol.21, no.3, pp.703-712, 2002.
  9. M. Shevtsov, A. Soupikov and A. Kapustin, "Highly parallel fast KD-tree construction for interactive ray tracing of dynamic scenes," Computer Graphics Forum, vol.26, no.3, pp.395-404, 2007. https://doi.org/10.1111/j.1467-8659.2007.01062.x
  10. I. Wald, W. Mark, J. Gunther, S. Boulos, T. Ize, W. Hunt, S. Parker and P. Shirley, "State of the Art in Ray Tracing Animated Scenes," In Eurographics 2007 State of the Art Reports, 2007.
  11. I. Wald, C. Benthin and S. Boulos, "Getting rid of packets-efficient SIMD single-ray traversal using multibranching BVHs," In IEEE/EG Symposium on Interactive Ray Tracing, pp.49-57, 2008.
  12. R. Overbeck, R. Ramamoorthi and W. Mark, "Large ray packets for real-time Whitted ray tracing," In IEEE/EG Symposium on Interactive Ray Tracing, pp.41-48, 2008.
  13. L. Seiler, D. Carmean, E. Sprangle, T. Forsyth, M. Abrash, P. Dubey, S. Junkins, A. Lake, J. Sugerman, R. Cavin, R. Espasa, E. Grochowski, T. Juan and P. Hanrahan, "Larrabee: a many-core x86 architecture for visual computing," ACM Transactions on Graphics, vol.27, no.3, pp.1-15, 2008.
  14. NVIDIA. NVIDIA CUDA Compute Unified Device Architecture: Programming Guide (Version 2.3), 2009.
  15. NVIDIA. NVIDIA CUDA Compute Unified Device Architecture: Programming Guide (Version 2.3), 2009.
  16. 오상락, GPU를 사용한 효과적인 Kd-Tree 탐색 알고리즘, 서강대학교 석사학위 논문, 2009년 1월.
  17. 장병준, 임인성, "GPU상에서의 광선 추적을 위한 Kd-Tree 탐색 기법 비교 분석", 2009 한국컴퓨터그래픽스학회 하계학술대회 논문집, pp.71-73, 2009년 10월