레이 트레이싱(RT)은 가상 환경의 표면과 빛이 상호 작용하는 물리적 행동을 시뮬레이션하여 포토리얼리스틱 이미지를 생성합니다. 영화 제작 및 하이엔드 렌더링 파이프라인에서 이 기술은 수백만 개의 광선(light rays)을 프레임당 추적하고 그 반사 및 감쇠를 정확하게 모델링함으로써 전역 조명(global illumination), 반사(reflections), 굴절(refractions), 소프트 섀도우(soft shadows) 등을 계산합니다. 현대의 GPU는 트래버설 파이프라인(traversal pipeline)의 핵심 연산을 가속화하기 위해 특수화된 레이 트레이싱 하드웨어를 통합하고 있습니다. 이러한 단계를 하드웨어로 가속함으로써, 이 유닛은 이전에는 오프라인 계산이 필요했던 복잡한 장면에서도 실시간 레이 트레이싱을 가능하게 합니다.
하지만 레이 트레이싱은 상당한 제어 및 데이터 분기(control and data divergence)를 야기합니다. 각 광선은 가속 구조(acceleration structure) 내의 서로 다른 노드를 통과하거나, 고유한 재질에 부딪히거나, 다양한 깊이에서 종료될 수 있습니다. 이러한 불규칙성은 스레드 일관성(thread coherence)을 감소시키고, 각 광선이 독립적으로 진행하는 전용 RT 유닛의 Per-thread 실행 모델과 GPU의 SIMT(Single Instruction Multiple Thread) 간의 근본적인 차이를 노출합니다.
본 연구에서는 오픈 소스 인프라에서 가정된 가정을 검증하고 레이 트레이싱 파이프라인 내 자원 관리의 잠재적 비효율성을 식별하고자 합니다. SIMT와 RT의 세분성(granularity) 불일치로 인해 발생하는 비효율성을 해결하기 위해, 우리는 Ray-by-Ray를 제안합니다. 이는 온칩 버퍼를 개별 광선의 세분성으로 분해하고, 버퍼 용량을 증가시키지 않으면서 더 많은 워프(warps)가 병렬로 실행될 수 있도록 하는 경량 관리 구조를 도입합니다. 이 접근 방식은 레이 트레이싱 유닛의 활용도를 개선하고 메모리 레벨 병렬성(memory-level parallelism)을 높입니다. 실험 결과에 따르면, Ray-by-Ray는 기준선 대비 평균 1.91배의 성능 향상을 달성했으며, 면적 오버헤드는 0.19%였습니다.