KR102042539B1 - 레이 트레이싱 방법 및 장치 - Google Patents

레이 트레이싱 방법 및 장치 Download PDF

Info

Publication number
KR102042539B1
KR102042539B1 KR1020120080547A KR20120080547A KR102042539B1 KR 102042539 B1 KR102042539 B1 KR 102042539B1 KR 1020120080547 A KR1020120080547 A KR 1020120080547A KR 20120080547 A KR20120080547 A KR 20120080547A KR 102042539 B1 KR102042539 B1 KR 102042539B1
Authority
KR
South Korea
Prior art keywords
ray
search
unit
units
input
Prior art date
Application number
KR1020120080547A
Other languages
English (en)
Other versions
KR20140014487A (ko
Inventor
이원종
신용삼
이재돈
정석윤
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020120080547A priority Critical patent/KR102042539B1/ko
Priority to JP2013152912A priority patent/JP6246515B2/ja
Priority to US13/949,818 priority patent/US9779537B2/en
Priority to EP13177787.2A priority patent/EP2690599B1/en
Priority to CN201310312590.7A priority patent/CN103578130B/zh
Publication of KR20140014487A publication Critical patent/KR20140014487A/ko
Application granted granted Critical
Publication of KR102042539B1 publication Critical patent/KR102042539B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Analysing Materials By The Use Of Radiation (AREA)

Abstract

레이 트레이싱을 위한 방법 및 장치가 제공된다. 복수 개의 탐색 유닛들 중 입력될 레이를 처리할 탐색 유닛이 복수 개의 탐색 유닛들의 수명들에 기반하여 결정된다. 탐색 유닛의 수명은 탐색 유닛이 처리하고 있는 레이들의 수명들에 기반하여 결정될 수 있다.

Description

레이 트레이싱 방법 및 장치{METHOD AND APPARATUS FOR RAY TRACING}
아래의 실시예들은 레이 트레이싱을 위한 방법 및 장치에 관한 것으로 보다 상세히는 레이의 탐색 및 교차 검사를 수행하는 방법 및 장치가 개시된다.
3차원(3Dimension; 3D) 렌더링(rending)은 3D 객체(object)의 데이터를 주어진 카메라의 시점(view point)에서 보이는 영상(image)으로 합성(synthesis)하는 영상 처리 과정일 수 있다.
렌더링을 위한 한 방법으로서, 3D 객체를 화면(screen)에 투영(projection)하면서 영상을 생성하는 레스터화(raterization) 방법이 있다. 또한, 렌더링을 위한 다른 방법으로서, 카메라의 시점에서부터 영상의 각 픽셀을 향해 발사된 레이(ray)를 따라 입사하는 빛의 경로를 추적(trace)함으로써 영상을 생성하는 레이 트레이싱(ray tracing)이 있다.
상기의 렌더링을 위한 방법들 중, 레이 트레이싱은 반사, 굴절 및 투과 등과 같은 빛의 물리적 성질을 이용함으로써 고품질의 영상을 생성할 수 있다는 장점을 가질 수 있다. 그러나, 레이 트레이싱을 위해 사용되는 연산량의 방대한 양 때문에, 레이 트레이싱은 고속의 렌더링을 처리하기 어렵다는 단점을 가질 수 있다.
가속 구조(acceleration structure)의 탐색(traversal; TRV) 및 레이-프리미티브(ray-primitive) 간 교차 검사(intersection test; IST)는 각각 레이의 추적의 성능을 결정하는 가장 중요한 요소들 중 하나 일 수 있다. 상기의 가속 구조의 탐색 및 레이-프리미티브 간 교차 검사는 레이들 각각에 대해 수 회 내지 수십 회까지 수행될 수 있다.
상기의 가속 구조는 공간 분할 가속 구조일 수 있다. 가속 구조는 렌더링의 대상인 씬 객체(scene object)들을 공간적으로 분할하여 표현한 데이터 구조일 수 있다. 가속 구조로서, 그리드(grid), 케이디-트리(kd-tree), 바운딩 볼륨 하이어아키(Bounding Volume Hierarchy; BVH) 등의 자료 구조가 사용될 수 있다.
상기의 탐색 및 교차 검사는 레이 트레이싱에 있어서 70% 이상의 연산량 및 90% 이상의 메모리 대역폭을 점유하는 과정일 수 있다. 탐색 및 교차 검사의 실시간 처리를 위해 전용의 하드웨어가 사용될 수 있다.
일 측에 따르면, 복수 개의 탐색 유닛들의 수명들에 기반하여 상기 복수 개의 탐색 유닛들 중 입력 레이의 탐색을 처리할 탐색 유닛을 선택하는 단계, 상기 선택된 탐색 유닛을 사용하여 상기 입력 레이의 탐색을 처리하는 단계를 포함하고, 상기 복수 개의 탐색 유닛들 각각의 수명은 상기 복수 개의 탐색 유닛들 각각에 의해 처리되고 있는 하나 이상의 레이들의 상태들에 기반하여 결정되는 레이 처리 방법이 제공될 수 있다.
상기 선택된 탐색 유닛은 상기 복수 개의 탐색 유닛들의 상태들에 기반하여 상기 복수 개의 탐색 유닛들 중에서 선택될 수 있다.
상기 복수 개의 탐색 유닛들 각각의 수명은 상기 복수 개의 탐색 유닛들 각각에 의해 처리되고 있는 상기 하나 이상의 레이들의 수명들에 기반하여 결정될 수 있다.
상기 하나 이상의 레이들 각각의 수명은 상기 하나 이상의 레이들 각각의 탐색이 상기 복수 개의 탐색 유닛들에 의해 반복적으로 처리된 횟수에 기반하여 결정될 수 있다.
상기 복수 개의 탐색 유닛들 각각의 수명은 상기 복수 개의 탐색 유닛들 각각에 의해 처리되고 있는 하나 이상의 레이들의 수명들의 합일 수 있다.
상기 복수 개의 탐색 유닛들 각각의 수명은 상기 복수 개의 탐색 유닛들 각각에 의해 처리되고 있는 하나 이상의 레이들의 수명들의 평균일 수 있다.
상기 선택된 탐색 유닛은, 상기 복수 개의 탐색 유닛들 중 입력 버퍼 내에 가장 적은 개수의 레이들을 갖는 탐색 유닛들 중 가장 큰 수명을 갖는 탐색 유닛일 수 있다.
상기 입력 레이의 탐색을 처리하는 단계는 반복해서 수행될 수 있다.
상기 입력 레이의 탐색을 처리하는 단계가 반복될 때 상기 입력 레이의 수명은 1 증가할 수 있다.
상기 레이 처리 방법은, 복수 개의 교차 검사 유닛들 중 입력 레이의 교차 검사를 처리할 교차 검사 유닛을 선택하는 단계 및 상기 선택된 교차 검사 유닛을 사용하여 상기 입력 레이의 교차 검사를 처리하는 단계를 더 포함할 수 있다.
다른 일 측에 따르면, 레이의 탐색을 처리하는 복수 개의 탐색 유닛들 및 상기 복수 개의 탐색 유닛들의 수명들에 기반하여 상기 복수 개의 탐색 유닛들 중 입력 레이의 탐색을 처리할 탐색 유닛을 선택하는 레이 디스패치 유닛을 포함하고, 상기 선택된 탐색 유닛은 상기 입력 레이의 탐색을 처리하고, 상기 복수 개의 탐색 유닛들 각각의 수명은 상기 복수 개의 탐색 유닛들 각각에 의해 처리되고 있는 하나 이상의 레이들의 상태들에 기반하여 결정되는 레이 트레이싱 장치가 제공될 수 있다.
상기 레이 디스패치 유닛은 상기 복수 개의 탐색 유닛들의 상태들에 기반하여 상기 복수 개의 탐색 유닛들 중에서 상기 선택된 탐색 유닛을 선택할 수 있다.
상기 디스패치 유닛은, 상기 복수 개의 탐색 유닛들 중 입력 버퍼 내에 가장 적은 개수의 레이들을 갖는 탐색 유닛들 중 가장 큰 수명을 갖는 탐색 유닛을 상기 선택된 탐색 유닛으로서 선택할 수 있다.
상기 복수 개의 탐색 유닛들은 입력 레이의 탐색을 반복해서 처리할 수 있다.
상기 입력 레이의 탐색이 반복될 때 상기 입력 레이의 수명은 1만큼 증가할 수 있다.
상기 레이 트레이싱 장치는, 레이의 교차 검사를 처리하는 복수 개의 교차 검사 유닛들 및 상기 복수 개의 교차 검사 유닛들 중 입력 레이의 교차 검사를 처리할 교차 검사 유닛을 선택하는 레이 중재 유닛을 더 포함할 수 있다.
상기 선택된 교차 검사 유닛은 상기 입력 레이의 교차 검사를 처리할 수 있다.
도 1은 일 실시예에 따른 TRV 유닛의 구조도이다.
도 2는 일 실시예에 따른 IST 유닛의 구조도이다.
도 3은 일 실시예에 따른 레이 트레이싱 유닛 및 레이 트레이싱 유닛과 관련된 개체들의 구조도이다.
도 4는 일 실시예에 따른 GPU의 구성요소들의 동작을 나타내는 신호 흐름도이다.
도 5는 일 실시예에 따른 레이의 추적의 방법의 흐름도이다.
도 6은 일 예에 따른 TRV 유닛의 수명 관리 방법의 흐름도이다.
도 7은 일 예에 따른 레이 디스패치 유닛의 동작 방법의 흐름도이다.
도 8은 일 예에 따른 레이 중재 유닛의 동작 방법의 흐름도이다.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
이하에서, 용어 '레이'는 레이 트레이싱의 대상인 '레이 객체(object)', '레이를 나타내는 자료 구조(data structure), '레이의 정보' 또는 '레이와 관련된 데이터'를 의미할 수 있으며, 상호 대체되어 사용될 수 있다.
도 1은 일 실시예에 따른 TRV 유닛(unit)의 구조도이다.
TRV 유닛(100)은 레이의 탐색을 위한 유닛으로서, 레이의 탐색을 처리할 수 있다. TRV 유닛(100)은 레이의 가속 구조를 탐색할 수 있다.
TRV 유닛(100)은 입력 버퍼(110), 파이프라인(120), 캐쉬(cache)(130), 제1 출력 버퍼(140), 제2 출력 버퍼(150) 및 제3 출력 버퍼(160)를 포함할 수 있다.
입력 버퍼(110)는 파이프라인(120) 내에서 처리될 하나 이상의 레이들 각각을 저장할 수 있다. 즉, TRV 유닛(100)에 입력된 레이는 입력 버퍼(110) 내에서 탐색의 처리를 대기할 수 있다. 입력 버퍼(110)가 레이를 더 저장할 수 없으면, 입력 버퍼(110)는 비가용(unavailable)할 수 있다. 입력 버퍼(110)가 레이를 더 저장할 수 있으면, 입력 버퍼(110)는 가용(available)할 수 있다.
파이프라인(120)은 레이의 탐색을 처리할 수 있다. 파이프라인(120)은 최대 n1 개의 레이들 각각의 탐색들을 동시에 처리할 수 있다. 파이프라인(120)이 처리하고 있는 레이들의 개수가 k1 일때, TRV 유닛(100)의 파이프라인 활용(pipeline utilization)은 k1/n1일 수 있다. 여기서, n1은 1 이상의 정수일 수 있다. k1은 1 이상 n1 이하의 정수일 수 있다.
캐쉬(130)는 레이의 탐색에 관련된 데이터를 캐슁(caching)할 수 있다. 캐쉬(130)는 레이의 탐색에 관련된 데이터를 파이프라인(120)에게 제공할 수 있다.
제1 출력 버퍼(140), 제2 출력 버퍼(150) 및 제3 출력 버퍼(160)는 각각 파이프라인(120)에서 처리된 하나 이상의 레이들 각각을 저장할 수 있다. 파이프라인(120)에 의해 탐색이 처리된 레이는 레이의 상태에 따라 몇몇 개체(entity)들 중 하나의 개체에게 제공될 수 있다. TRV 유닛(100)으로부터 출력될 레이는 제1 출력 버퍼(140), 제2 출력 버퍼(150) 또는 제3 출력 버퍼(160) 내에서 출력을 대기할 수 있다.
예컨대, 제1 출력 버퍼(140)는 TRV 유닛(100)에 의해 반복하여 처리될 레이를 저장할 수 있다. 제2 출력 버퍼(150)는 교차 검사될 레이를 저장할 수 있다. 제3 출력 버퍼(160)는 레이 트레이싱을 마치고, 쉐이딩(shading)될 레이를 저장할 수 있다.
TRV 유닛(100)은 수명 저장부(190)를 포함할 수 있다. 수명 저장부(190)는 TRV 유닛(100)의 수명을 저장할 수 있다. TRV 유닛(100)의 수명에 대해, 도 5를 참조하여 하기에서 상세히 설명된다. 수명 저장부(190)는 레지스터(register) 등과 같은 정보를 저장하기 위한 개체일 수 있으며, 수명을 나타내는 태그(tag)일 수 있다.
도 2는 일 실시예에 따른 IST 유닛의 구조도이다.
IST 유닛(200)은 레이의 교차 검사를 위한 유닛으로서, 레이의 교차 검사를 처리할 수 있다.
IST 유닛(200)은 입력 버퍼(210), 파이프라인(220), 캐쉬(230) 및 출력 버퍼(240)를 포함할 수 있다.
입력 버퍼(210)는 파이프라인(220) 내에서 처리될 하나 이상의 레이들 각각을 저장할 수 있다. 즉, IST 유닛(200)에 입력된 레이는 입력 버퍼(210) 내에서 교차 검사의 처리를 대기할 수 있다. 입력 버퍼(210)가 레이를 더 저장할 수 없으면, 입력 버퍼(210)는 비가용할 수 있다. 입력 버퍼(210)가 레이를 더 저장할 수 있으면, 입력 버퍼(210)는 가용할 수 있다.
파이프라인(220)은 레이의 교차 검사를 처리할 수 있다. 파이프라인(220)은 최대 n 개의 레이들 각각의 교차 검사들을 동시에 처리할 수 있다. 파이프라인(220)이 처리하고 있는 레이들의 개수가 k2 일때, IST 유닛(200)의 파이프라인 활용은 k2/n2일 수 있다. 여기서, n2는 1 이상의 정수일 수 있다. k2는 1 이상 n2 이하의 정수일 수 있다.
캐쉬(230)는 레이의 교차 검사에 관련된 데이터를 캐슁할 수 있다. 캐쉬(230)는 레이의 교차 검사에 관련된 데이터를 파이프라인(220)에게 제공할 수 있다.
출력 버퍼(240)는 파이프라인(220)에서 처리된 하나 이상의 레이들 각각의 정보를 저장할 수 있다. 파이프라인(220)에 의해 교차 검사가 처리된 레이는 TRV 유닛(100)으로 반복해서 입력될 수 있다. TRV 유닛(100)으로 입력될 레이는 출력 버퍼(240) 내에서 출력을 대기할 수 있다.
도 3은 일 실시예에 따른 레이 트레이싱 유닛 및 레이 트레이싱 유닛과 관련된 개체들의 구조도이다.
도 3은, 레이 트레이싱에 기반한 렌더링 하드웨어 또는 GPU의 구조를 나타낼 수 있다.
도 3에서, 레이 생성 유닛(310), 레이 트레이싱 유닛(320), 제1 캐쉬(382), 제2 캐쉬(384), 버스(386), 외부 메모리(388) 및 쉐이딩 유닛(390)이 도시되었다. 레이 생성 유닛(310), 제1 캐쉬(382), 제2 캐쉬(384) 및 쉐이딩 유닛(390)은 그래픽스 프로세싱 유닛(Graphics Processing Unit; GPU)의 구성요소(component)들일 수 있다. 즉, GPU는 레이 생성 유닛(310), 제1 캐쉬(382), 제2 캐쉬(384) 및 쉐이딩 유닛(390)을 포함할 수 있다.
레이 생성 유닛(310)은 레이를 생성할 수 있다. 레이 생성 유닛(310)은 생성된 레이를 레이 트레이싱 유닛(320)에게 제공할 수 있다. 레이 생성 유닛(310)은 레이의 정보를 레이 트레이싱 유닛(320)에게 제공하는 작업 또는 개체를 나타낼 수 있다.
레이 트레이싱 유닛(320)은 레이의 추적을 처리할 수 있다. 레이 트레이싱 유닛(320)은 추적이 처리된 레이를 쉐이딩 유닛(390)에게 제공할 수 있다.
쉐이딩 유닛(390)은 추적이 처리된 레이의 정보에 기반하여 쉐이딩을 처리할 수 있다. 쉐이딩 유닛(390)은 레이의 추적이 처리된 후 쉐이딩을 처리하는 작업 또는 개체를 나타낼 수 있다. 쉐이딩은 영상 내의 픽셀에 대해 축적된 레이들의 결과들을 합함으로써 픽셀의 컬러를 최종적으로 결정하는 것을 의미할 수 있다. 여기서, 레이의 결과는 레이에 대한 레이 트레이싱의 결과일 수 있다.
제1 캐쉬(382) 및 제2 캐쉬(384)는 레이의 추적에 관련된 필요한 데이터를 캐슁할 수 있다. 레이의 추적을 처리하기 위해 필요한 데이터는 외부 메모리(388) 내에 저장되어 있을 수 있고, 제1 캐쉬(382) 및 제2 캐쉬(384)는 외부 메모리(388) 내에 저장된 데이터의 일부를 캐슁할 수 있다. 레이의 추적에 관련된 데이터는 버스(386)를 통해 제1 캐쉬(382) 및 외부 메모리(388) 간에서 전송되거나, 제2 캐쉬(384) 및 외부 메모리(388) 간에서 전송될 수 있다.
제1 캐쉬(382)는 도 1을 참조하여 전술된 TRV 유닛(100)의 캐쉬(130)에게 레이의 탐색을 처리하기 위해 필요한 데이터를 제공할 수 있다. 제2 캐쉬(384)는 도 2을 참조하여 전술된 IST 유닛(200)의 캐쉬(230)에게 레이의 교차 검사를 처리하기 위해 필요한 데이터를 제공할 수 있다. 따라서, TRV 유닛(100)의 캐쉬(130) 및 IST 유닛(200)의 캐쉬(230)는 각각 레벨 1(level 1) 캐쉬일 수 있고, 제1 캐쉬(382) 및 제2 캐쉬(384)는 각각 레벨 2 캐쉬일 수 있다.
하기에서, 레이 트레이싱 유닛(320)의 구성요소가 설명된다.
공간 분할 가속 구조로서 트리가 사용되고, 프리미티브로서 삼각형(triangle)이 사용되는 경우, 레이 트레이싱 유닛(320)은 가속 구조 트리의 루트 노드로부터 하위의 노드로의 계층적인 탐색을 통해, 레이가 가장 먼저 방문하는 리프(leaf) 노드를 검색할 수 있다. 상기의 검색에 의해 리프 노드가 방문되면, 레이 트레이싱 유닛(320)은 1) 레이 및 2) 리프 노드 내에 존재하는 삼각형 간의 교차 검사를 할 수 있다. 여기서, 리프 노드 내에 존재하는 삼각형은 복수 개일 수 있다. 방문된 리프 노드 내에서 레이와 교차하는 삼각형이 검색되지 않은 경우, 레이 트레이싱 유닛(320)은 트리의 탐색을 계속하여 레이와 교차하는 프리미티브를 검색할 수 있다. 상기의 탐색 및 교차 검사는 각각 TRV 유닛(100) 및 IST 유닛(200)에 의해 수행될 수 있다.
전술된 것과 같은 레이의 추적의 특성 때문에, 레이의 추적은 많은 연산들 및 높은 메모리 대역폭을 동시에 요구한다. 이러한 요구는, 노드의 방문 또는 레이 및 프리미티브 간의 교차 검사가 수행될 때마다, 외부 메모리(388)로부터 노드의 데이터 또는 프리미티브의 데이터가 패치(fetch)된 후 상기의 연산들이 수행되어야 함에 기인할 수 있다. 따라서, 탐색 및 교차 검사에 각각 사용되는 TRV 유닛(100) 및 IST 유닛(200)은 각각 캐쉬(130) 및 캐쉬(230)를 구비할 수 있다. 노드의 데이터 또는 프리미티브의 데이터가 캐쉬(130) 또는 캐쉬(230) 내에 존재하지 않는 경우, 외부 메모리(388)로부터 데이터를 패치할 때 긴 지연시간(latency)이 발생할 수 있고, 레이의 추적의 성능이 저하될 수 있다.
레이 트레이싱 유닛(320)은 레이 디스패치 유닛(330), 복수 개의 TRV 유닛들, 레이 중재(arbitration) 유닛(350), 복수 개의 IST 유닛들 및 버퍼(370)를 포함할 수 있다.
복수 개의 TRV 유닛들은 각각 도 1을 참조하여 전술된 TRV 유닛(100)일 수 있다. 도 3에서, 복수 개의 TRV 유닛들로서, 제1 TRV 유닛(340-1), 제2 TRV 유닛(340-2), 제3 TRV 유닛(340-3), 제4 TRV 유닛(340-4) 및 제N TRV 유닛(340-5)이 도시되었다. 여기서, N은 2 이상의 정수일 수 있다.
레이 디스패치 유닛(330)은 레이 생성 유닛(310) 및 복수 개의 TRV 유닛들 간의 레이의 전송을 제어할 수 있다. 레이 디스패치 유닛(330)은 레이 트레이싱 유닛(320)으로 입력된 입력 레이를 복수 개의 TRV 유닛들 중 하나의 TRV 유닛으로 분배할 수 있다.
복수 개의 TRV 유닛들의 입력 버퍼들의 가용 여부에만 기반하여 입력 레이가 분배되면, 복수 개의 TRV 유닛들의 파이프라인 활용들에 있어서 부하 불균형(load imbalance)이 발생할 수 있다. 말하자면, 레이 디스패치 유닛(330)이 복수 개의 TRV 유닛들의 입력 버퍼들 각각 내에 빈 자리가 있는지 여부만을 파악하여 복수 개의 TRV 유닛들 중 입력 레이의 탐색을 처리할 TRV 유닛을 선택할 경우, 특정한 TRV 유닛으로 레이의 탐색의 처리가 집중될 수 있다.
복수 개의 TRV 유닛들 중 하나의 TRV 유닛으로 입력되는 레이는, 레이 생성 유닛(310)으로부터 생성된 레이, 상기의 하나의 TRV 유닛에 의해 탐색이 처리된 레이 및 IST 유닛(200)에 의해 교차 검사가 처리된 레이일 수 있다. 복수 개의 TRV 유닛들 중 하나의 TRV 유닛에 의해 출력되는 레이는 탐색을 처리한 상기의 하나의 TRV 유닛으로 다시 입력될 수 있고, 복수 개의 IST 유닛들 중 레이 중재 유닛(350)에 의해 선택된 IST 유닛으로 입력될 수 있고, 쉐이딩 유닛(390)으로 입력될 수 있다.
버퍼(370)은 쉐이딩 유닛(390)으로 출력될 하나 이상의 레이들 각각을 저장할 수 있다. 쉐이딩 유닛(390)으로 출력될 레이는 버퍼(370) 내에서 출력을 대기할 수 있다.
레이 중재 유닛(350)은 복수 개의 TRV 유닛들 및 복수 개의 IST 유닛들 간에서 레이의 전송을 중재할 수 있다. 말하자면, 레이 중재 유닛(350)은 복수 개의 TRV 유닛들 및 복수 개의 IST 유닛들 간의 레이의 데이터의 흐름(flow)을 제어할 수 있다.
복수 개의 IST 유닛들은 각각 도 2를 참조하여 전술된 IST 유닛(200)일 수 있다. 도 3에서, 복수 개의 IST 유닛들로서, 제1 IST 유닛(360-1), 제2 IST 유닛(360-2) 및 제M TRV 유닛(360-3)이 도시되었다. 여기서, M은 2 이상의 정수일 수 있다.
복수 개의 IST 유닛들 중 하나의 IST 유닛에 의해 출력되는 레이는 복수 개의 TRV 유닛들 중 하나의 TRV 유닛으로 입력될 수 있다. 여기서, 레이가 입력되는 TRV 유닛은 레이의 탐색을 처리한 TRV 유닛일 수 있다.
복수 개의 TRV 유닛들 각각 내의 기호 'Pipe'는 파이프라인(120)을 나타낼 수 있고, 기호 '$'는 캐쉬(130)를 나타낼 수 있다. 복수 개의 TRV 유닛들 각각 내의 기호 'Pipe'는 파이프라인(220)을 나타낼 수 있고, 기호 '$'는 캐쉬(230)를 나타낼 수 있다.
레이 디스패치 유닛(330) 및 레이 중재 유닛(350)에 의해 복수 개의 TRV 유닛들 및 복수 개의 IST 유닛들의 파이프라인 활용들이 균등해질 수 있다.
도 4는 일 실시예에 따른 GPU의 구성요소들의 동작을 나타내는 신호 흐름도이다.
단계(410)에서, 레이 생성 유닛(310)은 레이를 생성할 수 있다.
단계(415)에서, 레이 생성 유닛(310)은 생성된 레이를 레이 트레이싱 유닛(320)에게 제공할 수 있다. 레이 생성 유닛(310)은 생성된 레이를 레이 트레이싱 유닛(320)으로 출력할 수 있다.
단계(420)에서, 레이 트레이싱 유닛(320)은 레이의 추적을 처리할 수 있다.
단계(425)에서, 레이 트레이싱 유닛(320)은 추적이 처리된 레이를 쉐이딩 유닛(390)에게 제공할 수 있다. 레이 트레이싱 유닛(320)은 추적이 처리된 레이를 쉐이딩 유닛(390)으로 출력할 수 있다.
단계(430)에서, 쉐이딩 유닛(390)은 추적이 처리된 레이에 기반하여 쉐이딩을 처리할 수 있다.
TRV 유닛(100)에서는 전술된 것과 같은 다양한 경로들의 레이의 입력들 및 레이의 출력들이 발생할 수 있다. 따라서, 복수 개의 TRV 유닛들의 입력 버퍼들 내의 레이들의 개수뿐만 아니라, 복수 개의 TRV 유닛들의 파이프라인들의 상태들에 기반하여 입력 레이를 처리할 목적지가 결정될 필요가 있을 수 있다. 여기서, 파이프라인의 상태는 파이프라인 내에서 처리되고 있는 레이들의 상태들을 의미할 수 있다.
도 5는 일 실시예에 따른 레이의 추적의 방법의 흐름도이다.
후술될 단계들(510 내지 570)은 도 4를 참조하여 전술된 단계(420)에 대응할 수 있다.
입력 레이는 도 4를 참조하여 전술된 단계(415)에서 레이 생성 유닛(315)에 의해 제공된 레이일 수 있다.
단계(510)에서, 레이 디스패치 유닛(330)은 복수 개의 TRV 유닛들의 수명들에 기반하여 복수 개의 TRV 유닛들 중 입력 레이의 탐색을 처리할 TRV 유닛을 선택할 수 있다.
또한, 레이 디스패치 유닛(330)은 복수 개의 TRV 유닛들의 상태들에 기반하여 복수 개의 TRV 유닛들 중 입력 레이의 탐색을 처리할 TRV 유닛을 선택할 수 있다. 여기서, TRV 유닛(100)의 상태는 TRV 유닛(100)의 입력 버퍼(110)가 가용한지 여부 또는 TRV 유닛(100)의 입력 버퍼(110) 내의 레이들의 개수를 의미할 수 있다.
예컨대, 레이 디스패치 유닛(330)은 복수 개의 TRV 유닛들 중 입력 버퍼 내에 가장 적은 개수의 레이들을 갖는 TRV 유닛들 중 가장 큰 수명을 갖는 TRV 유닛을 상기의 선택된 TRV 유닛으로서 선택할 수 있다. 또는, 레이 디스패치 유닛(330)은 복수 개의 TRV 유닛들 중 입력 버퍼가 가용한 TRV 유닛들 중 가장 작은 수명을 갖는 TRV 유닛을 선택할 수 있다.
복수 개의 TRV 유닛들 각각의 수명은 복수 개의 TRV 유닛들 각각에 의해 처리되고 있는 하나 이상의 레이들의 상태들에 기반하여 결정될 수 있다.
복수 개의 TRV 유닛들 각각의 수명은, 각 TRV 유닛, 레이 디스패치 유닛(330) 또는 레이 트레이싱 유닛(320)에 의해 계산 또는 관리될 수 있다. 예컨대, TRV 유닛(100)는 TRV 유닛(100)의 수명을 계산하여 수명 저장부(190) 내에 저장할 수 있고, 저장된 수명을 레이 디스패치 유닛(330)에게 제공할 수 있다. 또는, 레이 디스패치 유닛(330)은 복수 개의 TRV 유닛들의 수명들을 각각 계산할 수 있으며, 계산된 수명들을 저장할 수 있다.
복수 개의 TRV 유닛들 각각의 수명은 복수 개의 TRV 유닛들 각각에 의해 처리되고 있는 하나 이상의 레이들의 상태들에 기반하여 결정될 수 있다. TRV 유닛(100)에 의해 처리되고 있는 하나 이상의 레이들은 TRV 유닛(100)의 파이프라인(120) 내에서 처리되고 있는 레이들 및/또는 TRV 유닛(100)의 입력 버퍼 내에 있는 레이들일 수 있다.
레이의 상태는 레이의 수명일 수 있다. 즉, TRV 유닛(100)에 의해 처리되고 있는 하나 이상의 레이들은 각각 수명을 가질 수 있다.
레이의 수명은 레이가 TRV 유닛(100) 또는 레이 디스패치 유닛(330) 내에 입력되어 얼마나 오랜 기간 동안 머물렀는지를 나타내는 정보일 수 있다.
복수 개의 TRV 유닛들의 수명은 복수 개의 TRV 유닛들 각각에 의해 처리되고 있는 하나 이상의 레이들의 수명들에 기반하여 결정될 수 있다. 말하자면, TRV 유닛(100)의 수명은 TRV 유닛(100)에 입력된 레이들의 상태들 또는 수명들을 대표하는 정보일 수 있다. 예컨대, 복수 개의 TRV 유닛들 각각의 수명은 복수 개의 TRV 유닛들 각각에 의해 처리되고 있는 하나 이상의 레이들의 수명들의 합일 수 있다. 즉, TRV 유닛(100)의 수명은 상기의 TRV 유닛(100)에 의해 처리되고 있는 하나 이상의 레이들의 수명들의 합일 수 있다. 예컨대, 복수 개의 TRV 유닛들 각각의 수명은 복수 개의 TRV 유닛들 각각에 의해 처리되고 있는 하나 이상의 레이들의 수명들의 평균일 수 있다. 즉, TRV 유닛(100)의 수명은 상기의 TRV 유닛(100)에 의해 처리되고 있는 하나 이상의 레이들의 수명들의 평균일 수 있다.
하나 이상의 레이들 각각의 수명은 하나 이상의 레이들 각각의 탐색이 복수 개의 TRV 유닛들에 의해 반복적으로 처리된 횟수에 기반하여 결정될 수 있다. 탐색의 반복에 있어서 하나의 탐색은 가속 구조 트리의 하나의 노드를 방문하는 것에 대응할 수 있다.
레이의 수명은 상기의 레이의 탐색이 복수 개의 TRV 유닛들에 의해 반복적으로 처리된 횟수일 수 있다. 예컨대, TRV 유닛(100)의 입력 버퍼(110)에 새로운 수명이 1인 레이가 입력되면 TRV 유닛(100)의 수명이 1만큼 증가할 수 있다. 또는, 후술될 입력 레이의 탐색을 처리하는 단계(520)가 반복될 때, 입력 레이의 수명은 1만큼 증가할 수 있다. 후술될 추적이 처리된 입력 레이를 출력하는 단계(570)에서, TRV 유닛(100)의 수명은 출력되는 입력 레이의 수명만큼 감소할 수 있다.
말하자면, TRV 유닛(100)의 수명이 크다는 것은, TRV 유닛(100)의 파이프라인(120) 내에 상대적으로 더 빨리 퇴역(retire)할 가능성이 높은 레이들이 많다는 것을 의미할 수 있다. 따라서, 큰 수명을 갖는 TRV 유닛(100)의 파이프라인(120) 내의 레이들은 상대적으로 더 빨리 소모될 수 있다. 따라서, 복수 개의 TRV 유닛들에게 입력 레이를 분배할 때, 복수 개의 TRV 유닛들 중 큰 수명을 갖는 TRV 유닛에게 우선적으로 입력 레이를 분배함으로써 복수 개의 TRV 유닛들 간의 균형이 유지될 수 있다.
단계(520)에서, 선택된 TRV 유닛을 사용함으로써 입력 레이의 탐색이 처리될 수 있다. 선택된 TRV 유닛은 입력 레이의 탐색을 처리할 수 있다.
단계(530)에서, 선택된 TRV 유닛 또는 레이 디스패치 유닛(330)은 교차 검사의 실행 여부를 판단할 수 있다. 교차 검사가 요구되는 경우, 단계(550)가 수행될 수 있다. 교차 검사가 요구되지 않는 경우, 단계(540)가 수행될 수 있다.
단계(540)에서, 선택된 TRV 유닛 또는 레이 디스패치 유닛(330)은 탐색의 반복 여부를 판단할 수 있다. 탐색이 반복되는 경우, 트리의 탐색을 계속하기 위해 입력 레이의 탐색을 처리하는 단계(520)가 반복해서 수행될 수 있다. 탐색이 반복되지 않는 경우 단계(570)이 수행될 수 있다.
복수 개의 TRV 유닛들은 입력 레이의 탐색을 반복해서 처리할 수 있다. 입력 레이의 탐색이 반복될 때, 입력 레이의 수명은 1만큼 증가할 수 있다. 상기의 탐색의 반복 여부는 교차 검사의 결과에 기반하여 결정될 수 있다.
단계(530) 및 단계(540)는 예시적인 것으로, 교차 검사 실행 여부 및 탐색의 반복 여부를 판단하기 위해 임의의 순서 또는 방법이 사용될 수 있다.
단계(550)에서, 레이 중재 유닛(350)는 복수 개의 IST 유닛들 중 입력 레이의 교차 검사를 처리할 IST 유닛을 선택할 수 있다.
복수 개의 TRV 유닛들 중 여러 개의 TRV 유닛들이 동시에 레이들을 레이 중재 유닛(350)으로 출력할 수 있다.
레이 중재 유닛(350)은 동시에 출력된 복수 개의 레이들의 상태들에 기반하여 우선적으로 처리할 레이를 선택할 수 있다. 예컨대, 레이 중재 유닛(350)은 동시에 출력된 복수 개의 레이들 중 가장 큰 수명을 갖는 레이를 우선적으로 처리할 레이로서 선택할 수 있다.
레이 중재 유닛(350)은 동시에 레이를 출력한 복수 개의 TRV 유닛(100)들의 상태들에 기반하여 동시에 출력된 레이들 중 우선적으로 처리할 레이를 선택할 수 있다. 예컨대, 레이 중재 유닛(350)은 동시에 레이를 출력한 복수 개의 TRV 유닛(100)들 중 가장 큰 수명을 갖는 TRV 유닛(100)으로부터 출력된 레이를 우선적으로 처리할 레이로서 선택할 수 있다.
단계(560)에서, 선택된 IST 유닛은 입력 레이의 교차 검사를 처리할 수 있다. 레이의 교차 검사가 처리되면, 상기의 레이의 탐색이 다시 반복될 수 있다. 따라서, 단계(560)이 수행된 후 단계(520)가 반복해서 수행될 수 있다.
단계(570)에서, 선택된 TRV 유닛은 추적이 처리된 입력 레이를 쉐이딩 유닛(390)으로 출력할 수 있다. 추적이 처리된 입력 레이는 버퍼(370)를 경유하여 쉐이딩 유닛(390)으로 출력될 수 있다.
도 6은 일 예에 따른 TRV 유닛의 수명 관리 방법의 흐름도이다.
단계(610)에서, TRV 유닛(100)는 입력된 레이가 존재하는지 여부를 판단할 수 있다. 입력된 레이가 존재하면 단계(620)가 수행될 수 있다. 입력된 레이가 존재하지 않으면 단계(640)가 수행될 수 있다.
단계(620)에서, TRV 유닛(100)은 입력된 레이를 입력 버퍼(110)에 추가할 수 있다.
단계(630)에서, TRV 유닛(100)은 TRV 유닛(100)의 수명을 갱신할 수 있다. 예컨대, TRV 유닛(100)은 입력된 레이의 수명을 1로 설정할 수 있다. TRV 유닛(100)은 TRV 유닛(100)의 수명에 1을 더하거나, TRV 유닛(100)의 수명에 입력된 레이의 수명을 더할 수 있다.
TRV 유닛(100)은 갱신된 TRV 유닛(100)의 수명을 수명 저장부(190) 내에 저장할 수 있다.
단계(640)에서, 파이프라인(120)는 파이프라인 내의 레이들에 대한 탐색을 처리할 수 있다. 단계(640)에서, 파이프라인(120) 내에 빈 공간이 있는 경우, 입력 버퍼(110) 내의 레이가 파이프라인(120)으로 전송될 수 있다. 입력 버퍼(110) 내의 레이들은 선입선출(first-in first-out) 방식에 따라 파이프라인(120)으로 전송될 수 있다.
단계(650)에서, TRV 유닛(100)는 탐색이 종료된 레이가 존재하는지 여부를 판단할 수 있다. 탐색이 종료된 레이가 존재하면 단계(660)가 수행될 수 있다. 탐색이 종료된 레이가 존재하지 않으면 단계(610)가 반복해서 수행될 수 있다.
탐색이 종료되지 않은 레이들의 수명들은 1만큼 증가할 수 있다.
단계(660)에서, TRV 유닛(100)은 TRV 유닛(100)의 수명을 갱신할 수 있다.
TRV 유닛(100)은 탐색이 종료된 레이의 수명을 TRV 유닛(100)의 수명의 갱신에 반영할 수 있다. TRV 유닛(100)은 TRV 유닛(100)의 수명을 탐색이 종료된 레이의 수명만큼 감소시킬 수 있다.
단계(670)에서, TRV 유닛(100)은 모든 레이들의 탐색이 종료하였는지 여부를 판단할 수 있다. 모든 레이들의 탐색이 종료한 경우 절차가 종료할 수 있다. 탐색이 종료하지 않은 레이가 있는 경우, 단계(610)가 반복해서 수행될 수 있다.
앞서 도 1 내지 도 5를 참조하여 설명된 기술적 내용들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 이하 생략하기로 한다.
도 7은 일 예에 따른 레이 디스패치 유닛의 동작 방법의 흐름도이다.
단계들(710 내지 730)는 도 5를 참조하여 전술된 단계(510)에 대응할 수 있다.
단계(710)에서, 레이 디스패치 유닛(330)은 레이 생성 유닛(310)으로부터 입력된 레이가 존재하는지 여부를 판단할 수 있다. 입력된 레이가 존재하지 않는 경우 단계(710)가 반복해서 수행될 수 있다. 입력된 레이가 존재하는 경우 단계(720)가 수행될 수 있다.
단계(720)에서, 레이 디스패치 유닛(330)은 복수 개의 TRV 유닛들 중 입력된 레이의 탐색을 처리할 TRV 유닛을 선택할 수 있다. 상기의 선택에 대해 도 5를 참조하여 전술된 방법이 적용될 수 있다.
단계(730)에서, 레이 디스패치 유닛(330)은 입력된 레이를 선택된 TRV 유닛으로 전송할 수 있다.
앞서 도 1 내지 도 6을 참조하여 설명된 기술적 내용들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 이하 생략하기로 한다.
도 8은 일 예에 따른 레이 중재 유닛의 동작 방법의 흐름도이다.
단계들(810 내지 850)는 도 5를 참조하여 전술된 단계(550)에 대응할 수 있다.
단계(810)에서, 레이 중재 유닛(350)은 복수 개의 TRV 유닛들로부터 입력된 레이가 존재하는지 여부를 판단할 수 있다. 입력된 레이가 존재하지 않는 경우 단계(810)가 반복해서 수행될 수 있다. 입력된 레이가 존재하는 경우 단계(820)가 수행될 수 있다.
단계(820)에서, 레이 중재 유닛(350)은 입력된 레이가 복수 개인지 여부를 판단할 수 있다. 입력된 레이가 복수 개인 경우, 단계(830)가 수행될 수 있다. 입력된 레이가 복수 개가 아닌 경우, 단계(840)가 수행될 수 있다.
단계(830)에서, 레이 중재 유닛(350)은 복수 개의 입력된 레이들 중 우선적으로 처리할 레이를 선택할 수 있다. 상기의 선택에 있어서, 도 5를 참조하여 전술된 방법이 적용될 수 있다. 선택된 레이가 하기의 단계(850)에서 입력된 레이로서 처리될 수 있다.
단계(840)에서, 레이 중재 유닛(350)은 복수 개의 IST 유닛들 중 입력된 레이의 교차 검사를 처리할 IST 유닛을 선택할 수 있다. 상기의 선택에 있어서, 도 5를 참조하여 전술된 방법이 적용될 수 있다.
단계(850)에서, 레이 중재 유닛(350)은 입력된 레이를 선택된 IST 유닛으로 전송할 수 있다.
앞서 도 1 내지 도 7을 참조하여 설명된 기술적 내용들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 이하 생략하기로 한다.
전술된 방법들에 의해, 복수 개의 TRV 유닛들 및 IST 유닛들을 포함하는 레이 트레이싱 하드웨어에서, 파이프라인들 간의 동작 부하 균형이 향상될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
100: TRV 유닛
200: IST 유닛
310: 레이 생성 유닛
320: 레이 트레이싱 유닛
330: 레이 디스패치 유닛
350: 레이 중재 유닛
390: 쉐이딩 유닛

Claims (19)

  1. 각각이 레이의 탐색을 처리하도록 구성되는 복수의 탐색 유닛의 수명들에 기반하여, 상기 복수의 탐색 유닛 중 입력 레이의 탐색을 처리할 탐색 유닛을 선택하는 단계; 및
    상기 선택된 탐색 유닛을 사용하여 상기 입력 레이의 적어도 한 번의 탐색을 처리하는 단계를 포함하되,
    상기 복수의 탐색 유닛 각각의 수명은 상기 복수의 탐색 유닛 각각에 의해 처리되고 있는 레이들의 수명들에 기반하여 결정되고,
    상기 레이들의 수명들 각각은 상기 복수의 탐색 유닛 각각에 의해 상기 레이들 각각의 탐색이 처리된 횟수에 기반하여 결정되는 레이 처리 방법.
  2. 제 1 항에 있어서,
    상기 복수의 탐색 유닛 각각의 수명은 상기 복수의 탐색 유닛 각각에 의해 처리되고 있는 상기 레이들의 수명들의 합인 레이 처리 방법.
  3. 제 1 항에 있어서,
    상기 복수의 탐색 유닛 각각의 수명은 상기 복수의 탐색 유닛 각각에 의해 처리되고 있는 상기 레이들의 수명들의 평균인 레이 처리 방법.
  4. 제 1 항에 있어서,
    상기 입력 레이의 탐색을 처리할 탐색 유닛을 선택하는 단계는, 상기 복수의 탐색 유닛 중에서, 입력 버퍼 내에 가장 적은 개수의 레이들을 저장하는 탐색 유닛들 중 가장 큰 수명을 갖는 탐색 유닛을 선택하는 단계를 포함하는 레이 처리 방법.
  5. 제 1 항에 있어서,
    상기 레이들의 수명들은 상기 레이들이 상기 복수의 탐색 유닛 각각에 입력되어 머무른 기간들을 각각 나타내는 레이 처리 방법.
  6. 제 1 항에 있어서,
    상기 입력 레이의 탐색을 처리함에 따라, 상기 입력 레이의 수명을 증가시키는 단계를 더 포함하는 레이 처리 방법.
  7. 제 1 항에 있어서,
    상기 입력 레이의 상기 적어도 한 번의 탐색을 처리하는 것을 종료함에 따라, 상기 선택된 탐색 유닛의 수명을 감소시키는 단계를 더 포함하는 레이 처리 방법.
  8. 제 1 항에 있어서,
    복수의 교차 검사 유닛 중 상기 입력 레이의 교차 검사를 처리할 교차 검사 유닛을 선택하는 단계; 및
    상기 선택된 교차 검사 유닛을 사용하여 상기 입력 레이의 상기 교차 검사를 처리하는 단계를 더 포함하는 레이 처리 방법.
  9. 제 1 항 내지 제 8 항 중 어느 한 항의 레이 처리 방법을 수행하는 프로그램을 수록한 컴퓨터 판독 가능 기록 매체.
  10. 각각이 레이의 탐색을 처리하는 복수의 탐색 유닛; 및
    상기 복수의 탐색 유닛의 수명들에 기반하여, 상기 복수의 탐색 유닛 중 입력 레이의 탐색을 처리할 탐색 유닛을 선택하는 레이 디스패치 유닛을 포함하되,
    상기 선택된 탐색 유닛은 상기 입력 레이의 적어도 한 번의 탐색을 처리하고,
    상기 복수의 탐색 유닛 각각의 수명은 상기 복수의 탐색 유닛 각각에 의해 처리되고 있는 레이들의 수명들에 기반하여 결정되고,
    상기 레이들의 수명들 각각은 상기 복수의 탐색 유닛 각각에 의해 상기 레이들 각각의 탐색이 처리된 횟수에 기반하여 결정되는 레이 트레이싱 장치.
  11. 제 10 항에 있어서,
    상기 복수의 탐색 유닛 각각의 수명은 상기 복수의 탐색 유닛 각각에 의해 처리되고 있는 상기 레이들의 수명들의 합인 레이 트레이싱 장치.
  12. 제 10 항에 있어서,
    상기 복수의 탐색 유닛 각각의 수명은 상기 복수의 탐색 유닛 각각에 의해 처리되고 있는 상기 레이들의 수명들의 평균인 레이 트레이싱 장치.
  13. 제 10 항에 있어서,
    상기 레이 디스패치 유닛은, 상기 복수의 탐색 유닛 중에서, 입력 버퍼 내에 가장 적은 개수의 레이들을 저장하는 탐색 유닛들 중 가장 큰 수명을 갖는 탐색 유닛을 상기 선택된 탐색 유닛으로서 선택하는 레이 트레이싱 장치.
  14. 제 10 항에 있어서,
    상기 레이들의 수명들은 상기 레이들이 상기 복수의 탐색 유닛 각각에 입력되어 머무른 기간들을 각각 나타내는 레이 트레이싱 장치.
  15. 제 10 항에 있어서,
    상기 복수의 탐색 유닛에 의해 상기 입력 레이의 탐색을 처리함에 따라, 상기 입력 레이의 수명이 증가하는 레이 트레이싱 장치.
  16. 제 10 항에 있어서,
    상기 선택된 탐색 유닛에 의해 상기 입력 레이의 상기 적어도 한 번의 탐색을 처리하는 것을 종료함에 따라, 상기 선택된 탐색 유닛의 수명이 감소하는 레이 트레이싱 장치.
  17. 제 10 항에 있어서,
    각각이 레이의 교차 검사를 처리하는 복수의 교차 검사 유닛; 및
    상기 복수의 교차 검사 유닛 중 상기 입력 레이의 교차 검사를 처리할 교차 검사 유닛을 선택하는 레이 중재 유닛을 더 포함하는 레이 트레이싱 장치.
  18. 제 17 항에 있어서,
    상기 레이 중재 유닛은 상기 복수의 탐색 유닛으로부터 동시에 출력된 레이들 중 가장 큰 수명을 갖는 탐색 유닛으로부터 출력된 레이를 우선적으로 처리할 레이로서 선택하는 레이 트레이싱 장치.
  19. 제 10 항에 있어서,
    상기 복수의 탐색 유닛 각각의 수명은 상기 복수의 탐색 유닛 각각으로 입력되는 레이의 수명만큼 증가하고, 상기 복수의 탐색 유닛 각각으로부터 출력되는 레이의 수명만큼 감소하는 레이 트레이싱 장치.
KR1020120080547A 2012-07-24 2012-07-24 레이 트레이싱 방법 및 장치 KR102042539B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020120080547A KR102042539B1 (ko) 2012-07-24 2012-07-24 레이 트레이싱 방법 및 장치
JP2013152912A JP6246515B2 (ja) 2012-07-24 2013-07-23 レイ処理方法、レイトレーシング装置及びレイ処理装置
US13/949,818 US9779537B2 (en) 2012-07-24 2013-07-24 Method and apparatus for ray tracing
EP13177787.2A EP2690599B1 (en) 2012-07-24 2013-07-24 Method and apparatus for ray tracing
CN201310312590.7A CN103578130B (zh) 2012-07-24 2013-07-24 用于光线跟踪的方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120080547A KR102042539B1 (ko) 2012-07-24 2012-07-24 레이 트레이싱 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20140014487A KR20140014487A (ko) 2014-02-06
KR102042539B1 true KR102042539B1 (ko) 2019-11-08

Family

ID=48832821

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120080547A KR102042539B1 (ko) 2012-07-24 2012-07-24 레이 트레이싱 방법 및 장치

Country Status (5)

Country Link
US (1) US9779537B2 (ko)
EP (1) EP2690599B1 (ko)
JP (1) JP6246515B2 (ko)
KR (1) KR102042539B1 (ko)
CN (1) CN103578130B (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102219289B1 (ko) 2014-05-27 2021-02-23 삼성전자 주식회사 레이 트레이싱 시스템에서의 가속 구조 탐색 장치 및 그 탐색 방법
US10043303B2 (en) * 2016-03-30 2018-08-07 Intel IP Corporation Methods and apparatus for more efficient ray tracing of instanced geometry
US10332303B2 (en) 2016-04-26 2019-06-25 Imagination Technologies Limited Dedicated ray memory for ray tracing in graphics systems
US10417807B2 (en) * 2017-07-13 2019-09-17 Imagination Technologies Limited Hybrid hierarchy of bounding and grid structures for ray tracing
CN113034338B (zh) * 2019-12-24 2023-03-17 深圳市海思半导体有限公司 一种用于gpu的bvh构造方法、装置及存储介质

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11353496A (ja) 1998-06-10 1999-12-24 Ken Nishimura 光線追跡のための交点探索装置
JP2001034783A (ja) 1999-07-16 2001-02-09 Victor Co Of Japan Ltd 画像データ処理装置
US6466227B1 (en) 1999-09-01 2002-10-15 Mitsubishi Electric Research Laboratories, Inc. Programmable architecture for visualizing sampled and geometry data
US6556200B1 (en) * 1999-09-01 2003-04-29 Mitsubishi Electric Research Laboratories, Inc. Temporal and spatial coherent ray tracing for rendering scenes with sampled and geometry data
JP4352990B2 (ja) 2004-05-17 2009-10-28 日本ビクター株式会社 3次元画像生成システム
US7830379B2 (en) * 2006-09-19 2010-11-09 Caustic Graphics, Inc. Architectures for parallelized intersection testing and shading for ray-tracing rendering
KR100889602B1 (ko) 2006-12-05 2009-03-20 한국전자통신연구원 광선 추적을 위한 광선-삼각형 충돌 처리 방법 및 장치
US8826299B2 (en) * 2007-08-13 2014-09-02 International Business Machines Corporation Spawned message state determination
US8237711B2 (en) 2007-11-19 2012-08-07 Caustic Graphics, Inc. Tracing of shader-generated ray groups using coupled intersection testing
US7999808B1 (en) * 2007-12-13 2011-08-16 Nvidia Corporation Parallel processing system, method, and computer program product for executing node traversal or primitive intersection
KR100939212B1 (ko) 2007-12-15 2010-01-28 한국전자통신연구원 광선 집합을 이용한 병렬 광선 추적 방법 및 시스템
KR100924122B1 (ko) 2007-12-17 2009-10-29 한국전자통신연구원 픽셀 단위 처리 요소 기반의 광선 추적 장치 및 방법
CN104112291B (zh) * 2008-03-21 2017-03-29 想象技术有限公司 用于光线追踪渲染的并行相交测试及着色的架构
US8217935B2 (en) 2008-03-31 2012-07-10 Caustic Graphics, Inc. Apparatus and method for ray tracing with block floating point data
US9269182B2 (en) * 2008-09-05 2016-02-23 Nvidia Corporation System and method for identifying entry points of a hierarchical structure
US8963918B2 (en) 2008-09-30 2015-02-24 Microsoft Corporation Ray tracing on graphics hardware using kd-trees
US8350846B2 (en) 2009-01-28 2013-01-08 International Business Machines Corporation Updating ray traced acceleration data structures between frames based on changing perspective
KR101004110B1 (ko) * 2009-05-28 2010-12-27 주식회사 실리콘아츠 레이 트레이싱 코어 및 이를 포함하는 레이 트레이싱 칩
KR20110059037A (ko) 2009-11-27 2011-06-02 삼성전자주식회사 멀티 레벨 커널을 사용하는 레이 트레이싱 장치 및 방법
US8189001B2 (en) 2010-01-04 2012-05-29 Adshir Ltd. Method and apparatus for parallel ray-tracing employing modular space division
US8472455B2 (en) * 2010-01-08 2013-06-25 Nvidia Corporation System and method for traversing a treelet-composed hierarchical structure
CN101826215B (zh) * 2010-04-19 2012-05-09 浙江大学 实时二级光线跟踪的并行渲染方法
US8619078B2 (en) 2010-05-21 2013-12-31 International Business Machines Corporation Parallelized ray tracing
US8692825B2 (en) * 2010-06-24 2014-04-08 International Business Machines Corporation Parallelized streaming accelerated data structure generation
KR101705581B1 (ko) * 2010-09-30 2017-02-22 삼성전자주식회사 데이터 처리 장치 및 방법
CN102053258B (zh) * 2010-12-15 2012-09-05 中国石油集团川庆钻探工程有限公司 基于复杂地质构造的自适应三维射线追踪方法
CN102243768B (zh) * 2011-06-17 2013-01-30 长春理工大学 一种三维虚拟场景立体画面的绘制方法
CN102495427B (zh) * 2011-12-10 2013-06-19 北京航空航天大学 一种基于隐式模型表达的界面感知射线追踪方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
고영웅, 유혁, "연성 실시간 태스크를 위한 우선순위 기반 메모리 고립화 기법", 한국정보처리학회, 2002.*
운영체제 스케줄링 블로그*

Also Published As

Publication number Publication date
CN103578130B (zh) 2018-03-09
EP2690599B1 (en) 2021-10-06
EP2690599A2 (en) 2014-01-29
EP2690599A3 (en) 2017-07-12
CN103578130A (zh) 2014-02-12
JP6246515B2 (ja) 2017-12-13
US20140028666A1 (en) 2014-01-30
JP2014026652A (ja) 2014-02-06
US9779537B2 (en) 2017-10-03
KR20140014487A (ko) 2014-02-06

Similar Documents

Publication Publication Date Title
EP2698768B1 (en) Method and apparatus for graphic processing using parallel pipeline
CN104823215B (zh) 子画面图形渲染系统
KR20140036519A (ko) 레이 추적의 스케쥴링을 위한 장치 및 방법
US9483864B2 (en) System and method for photorealistic imaging using ambient occlusion
US11107266B2 (en) Method and apparatus for the proper ordering and enumeration of multiple successive ray-surface intersections within a ray tracing architecture
US7463261B1 (en) Three-dimensional image compositing on a GPU utilizing multiple transformations
KR101705581B1 (ko) 데이터 처리 장치 및 방법
KR102042539B1 (ko) 레이 트레이싱 방법 및 장치
US8797322B2 (en) Systems and methods of defining rays for ray tracing rendering
JP2022091849A (ja) 光線バンドルの光線に対する差分データを決定する方法及びグラフィックス処理ユニット
US20130271465A1 (en) Sort-Based Tiled Deferred Shading Architecture for Decoupled Sampling
US9558573B2 (en) Optimizing triangle topology for path rendering
US20130328875A1 (en) Integration Cone Tracing
Usher et al. Scalable ray tracing using the distributed framebuffer
Kim et al. T-ReX: Interactive global illumination of massive models on heterogeneous computing resources
KR102051903B1 (ko) 공간 가속 구조 탐색 장치 및 방법
US11908064B2 (en) Accelerated processing via a physically based rendering engine
KR102151444B1 (ko) Mimd 기반의 t&i 스케줄링을 이용한 레이 트레이싱 장치
US11830123B2 (en) Accelerated processing via a physically based rendering engine
US11704860B2 (en) Accelerated processing via a physically based rendering engine
US11875444B2 (en) Accelerated processing via a physically based rendering engine
Piao ADVANCED 3D RENDERING: ADAPTIVE CAUSTIC MAPS USING COMPUTE SHADER
GB2607993A (en) Accelerated processing via a physically based rendering engine
Frank et al. Dependency graph approach to load balancing distributed volume visualization
Piao Advanced 3D Rendering: Adaptive Caustic Maps with GPGPU

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant