줄리아(Julia)로 구현한 물리 기반 GPU 레이 트레이서, 성능과 확장성을 잡다!
줄리아(Julia)로 구현된 물리 기반 레이 트레이싱(Ray Tracing) 기술이 공개되어, Makie 백엔드(Backend)를 통해 시각화 기능 제공
AMD, NVIDIA, CPU 등 다양한 GPU 환경을 지원하며, 사용자 정의 재질(Custom Materials) 및 미디어(Media) 구현 용이
Breeze.jl, PlantGeom.jl, ProtPlot.jl 등 기존 과학 시뮬레이션(Simulation) 및 시각화(Visualization) 도구와의 통합으로 활용성 증대
커뮤니티에서는 AMD GPU 지원에 대한 긍정적 평가와 함께, BVH(Bounding Volume Hierarchy) 트래버설(Traversal) 및 재질 인터페이스(Material Interface) 구현에 대한 기술적 질문 제기
줄리아(Julia) 기반 레이 트레이싱(Ray Tracing)의 기술적 특징
본 기술은 pbrt-v4를 줄리아(Julia)로 포팅(Porting)하여, Makie 백엔드(Backend)와 통합했다. 특히, 줄리아(Julia)의 GPU 코드 컴파일(GPU Code Compilation) 기능을 활용하여, AMD, NVIDIA, CPU 등 다양한 환경에서 효율적인 성능을 제공한다. 또한, 사용자 정의 재질(Custom Materials) 및 미디어(Media) 구현을 지원하여, 블랙홀(Black Hole)과 같은 특수한 시뮬레이션(Simulation)도 가능하다. 이는 과학 연구 분야에서 시각화 도구(Visualization Tool)로서의 활용성을 높이는 핵심 요소로 작용한다.
다양한 GPU 환경 지원 및 성능 최적화
커뮤니티에서는 AMD GPU를 우선 지원한 점에 주목하며, ROCm의 안정성에 대한 긍정적인 평가를 내렸다. 기술적으로 보면, KernelAbstractions.jl을 통해 다양한 GPU 백엔드(Backend)를 지원하며, 이는 코드의 재사용성(Reusability)을 높이는 데 기여한다. 하지만, BVH(Bounding Volume Hierarchy) 트래버설(Traversal)과 같은 고성능 연산(High-Performance Computing)에서 벤더(Vendor)별 최적화(Optimization)가 필요할 수 있다는 의견도 제시되었다. 이는 향후 성능 개선의 중요한 과제로 보인다.
Makie 생태계와의 통합 및 활용 사례
RayMakie는 Makie의 씬 그래프(Scene Graph)를 활용하여, 기존 Makie 사용자들에게 익숙한 API를 제공한다. Breeze.jl, PlantGeom.jl, ProtPlot.jl 등 다양한 과학 시뮬레이션(Simulation) 도구와의 통합은, 연구자들이 복잡한 데이터를 시각화하고 분석하는 데 도움을 준다. 특히, PlantGeom.jl의 경우, 식물 모델(Plant Model)의 광선 추적(Ray Tracing)을 통해, 작물 생육 환경 연구에 기여할 수 있다. 이는 과학 연구 분야에서 시각화(Visualization)의 중요성을 보여주는 사례이다.
재질 인터페이스(Material Interface) 구현의 기술적 난제
커뮤니티에서는 PBRT의 재질(Material) 인터페이스(Interface) 구현 방식에 대한 질문이 제기되었다. 특히, 여러 재질(Material) 간의 상호 작용을 표현하는 데 어려움이 있다는 지적이 있었다. 예를 들어, 유리 안에 물과 얼음을 표현하는 경우, PBRT의 제한적인 인터페이스(Interface)로 인해, 추가적인 코드 수정이 필요할 수 있다. 이는 물리 기반 렌더링(Physically Based Rendering)의 유연성을 제한하는 요소로 작용하며, 향후 개선이 필요한 부분이다.
향후 개발 방향 및 과제
개발팀은 GPU 메모리 최적화, BVH(Bounding Volume Hierarchy) 구축 및 성능 개선, 코드 품질 향상, Makie 통합, SPPM(Stochastic Progressive Photon Mapping) 구현 등을 계획하고 있다. 특히, AMD GPU 지원에 대한 테스트를 강화하고, NVIDIA 및 CPU 백엔드(Backend)의 안정성을 확보하는 것이 중요하다. 또한, Makie 테스트 스위트(Test Suite)를 포팅(Porting)하여, 시각적 회귀 테스트(Visual Regression Test)를 구축할 필요가 있다. 이는 기술의 신뢰성을 높이는 데 기여할 것이다.