IP Library Granted Patent US 12,198,250
Granted Patent B2
US 12,198,250 · App. 16/819,116 · Granted Jan 14, 2025

Apparatus and method for double-precision ray traversal in a ray tracing pipeline

Inventors: Johannes Guenther (Munich, DE); Attila Tamas Afra (Satu Mare, RO)
Assignee: Intel Corporation
G06T15/06G06F7/485G06F7/4876G06F7/49947G06F7/57G06F9/3001G06T1/20G06T15/005G06T17/10
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,198,250
App. No.
16/819,116
Granted
Jan 14, 2025
Kind
B2
Abstract

Apparatus and method for double-precision traversal and intersection. For example, one embodiment of an apparatus comprises: a bounding volume hierarchy (BVH) generator to construct a BVH comprising a plurality of hierarchically arranged BVH nodes; a ray storage to store rays to be traversed through one or more of the BVH nodes; ray traversal circuitry comprising a first plurality of 64-bit arithmetic logic units (ALUs) which natively support double-precision floating point operations, the ray traversal circuitry to use at least a first ALU of the one or more ALUs to traverse a first ray through a first BVH node at a double-precision floating point precision to generate double-precision floating point traversal results; a plurality of execution units (EUs) coupled to the ray traversal circuitry, at least one of the plurality of EUs comprising a second plurality of 64-bit ALUs capable of natively performing double-precision floating point operations, the at least one of the plurality of EUs to execute one or more intersection shaders to perform ray-primitive intersection testing at double-precision floating point precision based on the double-precision floating point traversal results.

Claims (45)

1. An apparatus comprising:

a bounding volume hierarchy (BVH) generator to construct a BVH comprising a plurality of BVH nodes;

a ray storage to store rays to be traversed through one or more of the plurality of BVH nodes;

ray traversal circuitry comprising:

a first plurality of 64-bit arithmetic logic units (ALUs) which natively support double-precision floating point operations, the ray traversal circuitry to retrieve the rays stored in the ray storage and the plurality of BVH nodes from the BVH generator to perform traversal, wherein a first ALU of the one or more ALUs is to traverse a first ray through a first BVH node at a double-precision floating point precision to generate double-precision floating point traversal results; and

dynamic rounding circuitry to select a rounding mode to round at least one of the double-precision floating point traversal results to generate a lower precision traversal result upon a determination that the lower precision traversal result sufficiently represents the at least one of the double-precision floating point traversal results; and

a plurality of execution units (EUs) coupled to the ray traversal circuitry, at least one of the plurality of EUs comprising a second plurality of 64-bit ALUs capable of natively performing double-precision floating point operations, the at least one of the plurality of EUs to execute one or more intersection shaders to perform ray-primitive intersection testing at double-precision floating point precision based on the lower precision traversal result.

2. The apparatus of claim 1 wherein the EUs executing the one or more intersection shaders are to generate intersection results comprising an intersection between the first ray and a first primitive associated with the first BVH node.

3. The apparatus of claim 2 wherein the EUs executing the one or more intersection shaders are to spawn additional work, the additional work comprising work to be performed by one or more additional shaders and/or work to be performed by the ray traversal circuitry.

4. The apparatus of claim 3 wherein the one or more additional shaders comprise a closest hit shader, an any hit shader, or a miss shader.

5. The apparatus of claim 3 wherein the work to be performed by the ray traversal circuitry comprises one or more secondary rays to be traversed through the BVH.

6. The apparatus of claim 1 , wherein the first ALU includes a 64-bit floating point multiplier and a 64-bit floating point adder.

7. The apparatus of claim 6 wherein the first ALU includes a set of operand registers to store 64-bit floating point input values to be multiplied and/or added by the 64-bit floating point multiplier and/or 64-bit floating point adder.

8. The apparatus of claim 7 further comprising:

dynamic precision control circuitry to cause the 64-bit floating point multiplier and 64-bit floating point adder to perform multiplications and additions, respectively, using 32-bit floating point or 16-bit floating point values.

9. A method comprising:

constructing a bounding volume hierarchy (BVH) comprising a plurality of BVH nodes by a BVH generator;

reading a first ray from a ray storage;

traversing the first ray through a first BVH node of the plurality of BVH nodes at double-precision floating point precision by ray traversal circuitry comprising a first 64-bit arithmetic logic unit (ALU) capable of natively performing double-precision floating point operations to generate double-precision floating point traversal results, the ray traversal circuitry to retrieve the rays stored in the ray storage and the plurality of BVH nodes from the BVH generator to perform the traversing;

rounding at least one of the double-precision floating point traversal results using a rounding mode to generate a lower precision traversal result upon a determination that the lower precision traversal result sufficiently represents the at least one of the double-precision floating point traversal results;

providing the lower precision traversal result to one or more of a plurality of execution units (EUs), at least one of the plurality of EUs comprising a second 64-bit ALU capable of natively performing double-precision floating point operations; and

performing intersection testing with the lower precision traversal result by one or more intersection shaders executed on one or more of the plurality of EUs, the intersection testing comprising double-precision floating point ray-primitive intersection testing based on the lower precision traversal result.

10. The method of claim 9 wherein the EUs executing the one or more intersection shaders are to generate intersection results comprising an intersection between the first ray and a first primitive associated with the first BVH node.

11. The method of claim 10 wherein the EUs executing the one or more intersection shaders are to spawn additional work, the additional work comprising work to be performed by one or more additional shaders and/or work to be performed by the ray traversal circuitry.

12. The method of claim 11 wherein the one or more additional shaders comprise a closest hit shader, an any hit shader, or a miss shader.

13. The method of claim 11 wherein the work to be performed by the ray traversal circuitry comprises one or more secondary rays to be traversed through the BVH.

14. The method of claim 9 wherein the first ALU includes a 64-bit floating point multiplier and a 64-bit floating point adder.

15. The method of claim 14 wherein the first ALU includes a set of operand registers to store 64-bit floating point input values to be multiplied and/or added by the 64-bit floating point multiplier and/or 64-bit floating point adder.

16. The method of claim 15 further comprising:

dynamically selecting a lower precision to be used by the 64-bit floating point multiplier and 64-bit floating point adder to perform multiplications and additions, respectively, using 32-bit floating point or 16-bit floating point values.

17. A non-transitory machine-readable medium having program code stored thereon which, when executed by a machine, causes the machine to perform:

constructing a bounding volume hierarchy (BVH) comprising a plurality of BVH nodes by a BVH generator;

reading first ray from a ray storage;

traversing the first ray through a first BVH node of the plurality of BVH nodes at double-precision floating point precision by ray traversal circuitry comprising a first 64-bit arithmetic logic unit (ALU) capable of natively performing double-precision floating point operations to generate double-precision floating point traversal results, the ray traversal circuitry to retrieve the rays stored in the ray storage and the plurality of BVH nodes from the BVH generator to perform the traversing;

rounding at least one of the double-precision floating point traversal results using a rounding mode to generate a lower precision traversal result upon a determination that the lower precision traversal result sufficiently represents the at least one of the double-precision floating point traversal results;

providing the lower precision traversal result to one or more of a plurality of execution units (EUs), at least one of the plurality of EUs comprising a second 64-bit ALU capable of natively performing double-precision floating point operations; and

performing intersection testing with the lower precision traversal result by one or more intersection shaders executed on one or more of the plurality of EUs, the intersection testing comprising double-precision floating point ray-primitive intersection testing based on the lower precision traversal result.

18. The non-transitory machine-readable medium of claim 17 wherein the EUs executing the one or more intersection shaders are to generate intersection results comprising an intersection between the first ray and a first primitive associated with the first BVH node.

19. The non-transitory machine-readable medium of claim 18 wherein the EUs executing the one or more intersection shaders are to spawn additional work, the additional work comprising work to be performed by one or more additional shaders and/or work to be performed by the ray traversal circuitry.

20. The non-transitory machine-readable medium of claim 19 wherein the one or more additional shaders comprise a closest hit shader, an any hit shader, or a miss shader.

21. The non-transitory machine-readable medium of claim 19 wherein the work to be performed by the ray traversal circuitry comprises one or more secondary rays to be traversed through the BVH.

22. The non-transitory machine-readable medium of claim 17 wherein the first ALU includes a 64-bit floating point multiplier and a 64-bit floating point adder.

23. The non-transitory machine-readable medium of claim 22 wherein the first ALU includes a set of operand registers to store 64-bit floating point input values to be multiplied and/or added by the 64-bit floating point multiplier and/or 64-bit floating point adder.

24. The non-transitory machine-readable medium of claim 23 further comprising:

dynamically selecting a lower precision to be used by the 64-bit floating point multiplier and 64-bit floating point adder to perform multiplications and additions, respectively, using 32-bit floating point or 16-bit floating point values.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 13, 2020
From: GUENTHER, JOHANNES; AFRA, ATTILA TAMAS
To: INTEL CORPORATION
Reel/Frame 054361/0537 →
Continuity (1)
Related Publication 20210287423A1 · Sep 16, 2021
References Cited (12)
US 20120139926A1 · Clohset · 2012 [cited by examiner]
US 20190259195A1 · Woop et al. · 2019 [cited by applicant]
US 20190318445A1 · Benthin et al. · 2019 [cited by applicant]
US 20200051314A1 · Laine et al. · 2020 [cited by applicant]
US 20200211267A1 · Rowley · 2020 [cited by examiner]
CN 104700447A · 2015 [cited by applicant]
CN 109564699A · 2019 [cited by applicant]
CN 110858410A · 2020 [cited by applicant]
Examination Report, IN App. No. 202044051745, Aug. 12, 2022, 7 pages. [cited by applicant]
Laine, S., “Restart Trail for Stackless BVH Traversal”, High Performance Graphics, 2010, 5 pages. [cited by applicant]
Office Action, TW App. No. 109144377, Jan. 15, 2024, 16 pages (9 pages of English Translation and 7 pages of Original Document). [cited by applicant]
Office Action, TW App. No. 109144377, Aug. 2, 2024, 6 pages (2 pages of English Translation and 4 pages of Original Document). [cited by applicant]