reorder buffer: an energy-efficient multithreading architecture for hardware...

12
Reorder Buffer: An Energy-Efficient Multithreading Architecture for Hardware MIMD Ray Traversal Won-Jong Lee * Youngsam Shin Seok Joong Hwang Seok Kang § Jeong-Joon Yoo Soojung Ryu k SAMSUNG Advanced Institute of Technology Abstract In this paper, we present an energy- and area-efficient multithread- ing architecture for Multiple Instruction, Multiple Data (MIMD) ray tracing hardware targeted at low-power devices. Recent ray tracing hardware has predominantly adopted an MIMD approach for efficient parallel traversal of incoherent rays, and supports a multithreading scheme to hide latency and to resolve memory diver- gence. However, the conventional multithreading scheme has prob- lems such as increased memory cost for thread storage and con- sumption of additional energy for bypassing threads to the pipeline. Consequently, we propose a new multithreading architecture called Reorder Buffer. Reorder Buffer solves these problems by constitut- ing a dynamic reordering of the rays in the input buffer according to the results of cache accesses. Unlike conventional schemes, Re- order Buffer is cost-effective and energy-efficient because it does not need additional thread memory nor does it consume more en- ergy because it makes use of existing resources. Simulation results show that our architecture is a potentially versatile solution for fu- ture ray tracing hardware in low-energy devices because it provides as much as 11.7% better cache utilization and is up to 4.7 times more energy-efficient than the conventional architecture. CR Categories: I.3.1 [Computer Graphics]: Hardware Architecture—Graphics processors; I.3.7 [Computer Graphics]: Three-Dimensional Graphics and Realism—Raytracing; Keywords: ray tracing, GPU, mobile, multithreading 1 Introduction The continuous growth of the mobile market segment in recent times has resulted in ray tracing being highlighted as a new render- ing algorithm to produce high-quality images for mobile graphics applications such as UX/UI, Game, and AR/VR. However, real- time ray tracing in current mobile GPUs is not possible because of limited computing performance, memory bandwidth, and power constraints. Thus, various hardware-based ray tracing solutions such as fully dedicated hardware [Nah et al. 2014b], hardware- software hybrids [Lee et al. 2013], and GPU IPs [McCombe 2014] are being proposed to solve these problems in mobile devices. One key feature of recent ray tracing system is its capability to take advantage of the MIMD ray traversal approach [Kopta et al. 2010; * e-mail:[email protected] e-mail:[email protected] e-mail:[email protected] § e-mail:[email protected] e-mail:[email protected] k e-mail:[email protected] Nah et al. 2011; Kim et al. 2012a; Lee et al. 2013; Nah et al. 2014b; Nah et al. 2014a; Keely 2014]. Because the MIMD approach can enable efficient parallel processing of incoherent rays by resolv- ing branch divergence, it was extensively utilized in shared and distributed memory machines in past research [Cleary et al. 1986; Gaudet et al. 1988; Kobayashi et al. 1988; Priol and Bouatouch 1989], and has seen renewed interest owing to its possible utiliza- tion in mobile ray tracing hardware. However, MIMD traversal cannot resolve the memory divergence problem that still remains a critical issue, even though it can handle branch divergence. Recent architectures have tackled the memory divergence problem in two ways. In the first approach, ray scheduling is used to con- trol memory access patterns in order to improve the cache local- ity [Kopta et al. 2013; Keely 2014]. This approach decomposes a tree into small sub-trees, called treelets [Aila and Karras 2010], which fit into the local cache, and reschedules the processing order of rays, which eventually contributes to performance improvement. In the second approach, hardware multithreading is used to effi- ciently hide the memory latency caused by cache misses [Nah et al. 2011; Lee et al. 2013; Kwon et al. 2013; Nah et al. 2014b; Nah et al. 2014a]. By immediately processing the subsequent rays whenever a ray encounters a cache miss, pipeline stalls are avoided and hard- ware utilization is increased. The multithreading approaches used in ray tracing hardware are advantageous in terms of cost, because they use fewer register files than conventional GPU multithreading. However, the multithreading architecture used in conventional ray tracing hardware has problems that results in extra memory being required to store the ray threads that miss the cache [Nah et al. 2011; Lee et al. 2013; Nah et al. 2014a], or additional energy/power being consumed to bypass ray threads that miss the cache to the pipeline [Nah et al. 2014b]. Figure 1 shows the profile results of the energy consumption (without that of the DRAM) for rendering on our baseline ray tracing hardware (Section 4). The figure shows that the traversal and intersection logic modules are responsible for 83% of overall consumption. This trend can become worse as a result of the pipeline bypassing, which increases the number of circuit switches and memory accesses. Thus, we propose a new energy- and area-efficient multithreading architecture for MIMD ray tracing hardware. The key idea underly- ing our solution is dynamic reordering of the processing rays stored in the input buffer according to the result of cache access, which is inspired by the out-of-order non-blocking cache [Farkas and Jouppi 1994]. If the ray fetched from the input buffer encounters a cache miss, the input buffer holds the corresponding thread and subse- quent ray threads are scheduled to be processed. The rays that missed the cache in the buffer are retained only during the time of miss penalty, which minimizes unnecessary re-accesses to the cache. Moreover, our scheduler logic in the buffer improves ray co- herency by ensuring that rays with the same address are processed contiguously, which can also reduce the off-chip traffic and the en- ergy consumed. Unlike the conventional architecture, our architec- ture is cost-effective because it does not incur extra memory cost for storing threads, and is also energy-efficient because it does not bypass the rays that miss the cache. The concept of this architecture was previously proposed in an extended abstract [Lee et al. 2014b]. We verified the validity of the proposed multithreading architec-

Upload: others

Post on 31-Jul-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Reorder Buffer: An Energy-Efficient Multithreading Architecture for Hardware …web.yonsei.ac.kr/wjlee/document/reorderbuffer.pdf · 2015-08-09 · Reorder Buffer: An Energy-Efficient

Reorder Buffer: An Energy-Efficient Multithreading Architecture for HardwareMIMD Ray Traversal

Won-Jong Lee∗ Youngsam Shin† Seok Joong Hwang‡ Seok Kang § Jeong-Joon Yoo¶ Soojung Ryu ‖

SAMSUNG Advanced Institute of Technology

Abstract

In this paper, we present an energy- and area-efficient multithread-ing architecture for Multiple Instruction, Multiple Data (MIMD)ray tracing hardware targeted at low-power devices. Recent raytracing hardware has predominantly adopted an MIMD approachfor efficient parallel traversal of incoherent rays, and supports amultithreading scheme to hide latency and to resolve memory diver-gence. However, the conventional multithreading scheme has prob-lems such as increased memory cost for thread storage and con-sumption of additional energy for bypassing threads to the pipeline.Consequently, we propose a new multithreading architecture calledReorder Buffer. Reorder Buffer solves these problems by constitut-ing a dynamic reordering of the rays in the input buffer accordingto the results of cache accesses. Unlike conventional schemes, Re-order Buffer is cost-effective and energy-efficient because it doesnot need additional thread memory nor does it consume more en-ergy because it makes use of existing resources. Simulation resultsshow that our architecture is a potentially versatile solution for fu-ture ray tracing hardware in low-energy devices because it providesas much as 11.7% better cache utilization and is up to 4.7 timesmore energy-efficient than the conventional architecture.

CR Categories: I.3.1 [Computer Graphics]: HardwareArchitecture—Graphics processors; I.3.7 [Computer Graphics]:Three-Dimensional Graphics and Realism—Raytracing;

Keywords: ray tracing, GPU, mobile, multithreading

1 Introduction

The continuous growth of the mobile market segment in recenttimes has resulted in ray tracing being highlighted as a new render-ing algorithm to produce high-quality images for mobile graphicsapplications such as UX/UI, Game, and AR/VR. However, real-time ray tracing in current mobile GPUs is not possible becauseof limited computing performance, memory bandwidth, and powerconstraints. Thus, various hardware-based ray tracing solutionssuch as fully dedicated hardware [Nah et al. 2014b], hardware-software hybrids [Lee et al. 2013], and GPU IPs [McCombe 2014]are being proposed to solve these problems in mobile devices.

One key feature of recent ray tracing system is its capability to takeadvantage of the MIMD ray traversal approach [Kopta et al. 2010;

∗e-mail:[email protected]†e-mail:[email protected]‡e-mail:[email protected]§e-mail:[email protected]¶e-mail:[email protected]‖e-mail:[email protected]

Nah et al. 2011; Kim et al. 2012a; Lee et al. 2013; Nah et al. 2014b;Nah et al. 2014a; Keely 2014]. Because the MIMD approach canenable efficient parallel processing of incoherent rays by resolv-ing branch divergence, it was extensively utilized in shared anddistributed memory machines in past research [Cleary et al. 1986;Gaudet et al. 1988; Kobayashi et al. 1988; Priol and Bouatouch1989], and has seen renewed interest owing to its possible utiliza-tion in mobile ray tracing hardware. However, MIMD traversalcannot resolve the memory divergence problem that still remains acritical issue, even though it can handle branch divergence.

Recent architectures have tackled the memory divergence problemin two ways. In the first approach, ray scheduling is used to con-trol memory access patterns in order to improve the cache local-ity [Kopta et al. 2013; Keely 2014]. This approach decomposesa tree into small sub-trees, called treelets [Aila and Karras 2010],which fit into the local cache, and reschedules the processing orderof rays, which eventually contributes to performance improvement.In the second approach, hardware multithreading is used to effi-ciently hide the memory latency caused by cache misses [Nah et al.2011; Lee et al. 2013; Kwon et al. 2013; Nah et al. 2014b; Nah et al.2014a]. By immediately processing the subsequent rays whenevera ray encounters a cache miss, pipeline stalls are avoided and hard-ware utilization is increased. The multithreading approaches usedin ray tracing hardware are advantageous in terms of cost, becausethey use fewer register files than conventional GPU multithreading.

However, the multithreading architecture used in conventional raytracing hardware has problems that results in extra memory beingrequired to store the ray threads that miss the cache [Nah et al.2011; Lee et al. 2013; Nah et al. 2014a], or additional energy/powerbeing consumed to bypass ray threads that miss the cache to thepipeline [Nah et al. 2014b]. Figure 1 shows the profile results of theenergy consumption (without that of the DRAM) for rendering onour baseline ray tracing hardware (Section 4). The figure shows thatthe traversal and intersection logic modules are responsible for 83%of overall consumption. This trend can become worse as a resultof the pipeline bypassing, which increases the number of circuitswitches and memory accesses.

Thus, we propose a new energy- and area-efficient multithreadingarchitecture for MIMD ray tracing hardware. The key idea underly-ing our solution is dynamic reordering of the processing rays storedin the input buffer according to the result of cache access, which isinspired by the out-of-order non-blocking cache [Farkas and Jouppi1994]. If the ray fetched from the input buffer encounters a cachemiss, the input buffer holds the corresponding thread and subse-quent ray threads are scheduled to be processed. The rays thatmissed the cache in the buffer are retained only during the timeof miss penalty, which minimizes unnecessary re-accesses to thecache. Moreover, our scheduler logic in the buffer improves ray co-herency by ensuring that rays with the same address are processedcontiguously, which can also reduce the off-chip traffic and the en-ergy consumed. Unlike the conventional architecture, our architec-ture is cost-effective because it does not incur extra memory costfor storing threads, and is also energy-efficient because it does notbypass the rays that miss the cache. The concept of this architecturewas previously proposed in an extended abstract [Lee et al. 2014b].

We verified the validity of the proposed multithreading architec-

Page 2: Reorder Buffer: An Energy-Efficient Multithreading Architecture for Hardware …web.yonsei.ac.kr/wjlee/document/reorderbuffer.pdf · 2015-08-09 · Reorder Buffer: An Energy-Efficient

Ener

gy c

on

sum

pti

on

rat

io (

%)

58.16

27.19

7.59 6.26 0.81

0

20

40

60

80

Traversal Intersection L1 cache L2 cache Etc.

Figure 1: Decomposition of power consumption results for oneframe rendering on our baseline T&I unit RTL architecture (withthe exception of DRAM). The numbers were obtained via gate-levelsimulation and evaluation with Synopsys PrimTime PX [Synopsis2015].

ture via the cycle-accurate simulation integrated energy model. Themodel provided various simulation results on cache and pipelineutilization and performance and energy efficiency after running thediffused path tracing of four test scenes. The simulation resultsshow that our architecture achieves up to 11.7% better cache utiliza-tion and up to 4.7 times the energy-efficiency of the conventionalarchitecture1. These results reflect the minimal usage of memoryresources and efficient usage of hardware that characterize our pro-posed architecture. Thus, our architecture is a potentially versa-tile solution for future ray tracing application, particularly latency-critical applications such as Virtual Reality [SAMSUNG 2015] inthe mobile SoC environment [Exynos 2015]—which is subject tomemory latency, energy, and area constraints.

2 Background

The traditional ray tracing algorithm in the PC environment hasevolved to using parallelization supported by target platforms. Highperformance SIMD architectures have been developed for desktopCPUs/GPUs to support massive data parallelism, and ray tracing al-gorithms have aggressively utilized this SIMD feature. Packet trac-ing [Wald et al. 2001; Overbeck et al. 2008; Garanzha and Loop2010], in which multiple rays intersect in a single box, and multi-branching BVH [Ernst and Greiner 2008; Wald et al. 2008; Tsakok2009], in which multiple boxes can be tested with a single ray, areall algorithms developed to efficiently utilize the SIMD architec-ture.

In the past, when the computing power of CPUs/GPUs was insuf-ficient to support real-time rendering, researchers naturally consid-ered dedicated hardware solutions [Schmittler et al. 2004; Woopet al. 2005]. These specialized hardware were designed as SIMD ar-chitectures and realized real-time ray tracing at a low-cost by com-bining the features from GPU (such as SIMD multithreading andlatency hiding) and the benefits of the dedicated hardware (such astraversal and intersection pipeline, and multi-level cache systems).

However, rapid advances in desktop GPUs and an increasing num-ber of cores and SIMD lanes in CPUs and computing coprocessorssuch as Many Integrated Core (MIC) resulted in software-basedreal-time ray tracing a reality. Software ray tracing solutions thatadopted this technology were released into the market and madea huge contribution to high-quality rendering [Parker et al. 2010;Wald et al. 2014]. However, these solutions are mainly being used

1In this paper, the “conventional architecture” means the architecture us-ing previous multithreading methods, the RAU and the Retry. In contrast,the “baseline architecture” means the single-thread architecture not employ-ing any multithreading method (without non-blocking cache).

in the professional graphics arena, rather than real-time applica-tions such as the PC/video games field because they are still notfast enough yet.

In contrast, the explosive growth of the mobile market has contin-ued unabated and various realistic and immersive graphics applica-tions, including UI/UX, Game, and VR/AR are being developed forthe various mobile gadgets such as smartphones, tablet/phablet, andwearable devices. With the growth of the market and the increas-ing demands for photorealistic graphics, real-time ray tracing in themobile domain has become an attractive option. Ray tracing, inparticular, is being considered a potential rendering algorithm thatwill facilitate a new immersive experience for Head Mount Display(HMD)-based VR applications that enable users see the renderingthrough the lens in the near-eye field, because it can provide phys-ical light effects such as reflection, refraction, and shadow withoutdistortion [Fujita and Harada 2014; Harada 2014].

However, mobile computing is currently still not able to realizereal-time ray tracing. The practical computing power of recent mo-bile GPUs released in the market have not scaled linearly as hadbeen expected. The theoretical peak performance (for the comput-ing power of 32 bit floating point) of the current mobile flagshipGPUs in smartphones is in the range 200∼300 GFLOPS [ARM2015; Qualcomm 2015], and is estimated to attain a mere 400∼500GFLOPS even when the future mobile GPUs to be released in thenext one to two years are considered. Moreover, only one-half ofthe stated speed can be available in terms of practical performancebecause of power and heat limitations. In contrast, real-time raytracing of real-world applications such as games requires comput-ing power in the range 5∼6 TFLOPS (WQHD, 30 fps). This meansthat a performance gap of over 20 times the current speed exists.Consequently, interest in dedicated hardware [Lee et al. 2013; Mc-Combe 2014; Nah et al. 2014b] for the mobile domain has naturallybeen renewed with a view to satisfying market demands for high-quality graphics using high performance and low-power solutions.

The key feature of the recently proposed ray tracing hardware is itsdesign on an MIMD architecture, instead of SIMD, which is widelyutilized in traditional CPU/GPU based ray tracers. This feature canbe shown in not only mobile targeted [Kim et al. 2012a; Lee et al.2013; Nah et al. 2014b] but also PC targeted hardware [Nah et al.2011; Nah et al. 2014a; Keely 2014], because the MIMD archi-tecture is more advantageous for branch-intensive incoherent raytracing by independent parallel processing of ray threads. Con-versely, software ray tracers have been developed with the paral-lelization method, i.e., SIMD, and supported by existing platforms.The ray tracing architecture has also evolved to be more advanta-geous as designers design new hardware platforms. However, eventhough MIMD architecture improves on parallelism by resolvingthe branch divergence, the performance degradation by memory di-vergence still remains an unresolved problem in the MIMD archi-tecture.

On the other hand, the latency hiding has been a major concernin computer architecture fields, which has driven a variety of thenon-blocking cache architectures. Standard non-blocking cachesemploy an array of miss status holding registers (MSHRs) to trackthe mapping between identification tags received from the clientand outstanding requests sent to the next level cache. Accordingto the ways to organize the MSHR, a several architectures havebeen proposedImplicitly addressed MSHRs [Kroft 1981] is allo-cated per primary miss and is recorded at most one identificationtag for each individual word in the cache line. Explicitly addressedMSHRs [Farkas and Jouppi 1994] is allocated per primary miss andis recorded a total identification tags regardless of which word theyreference. Inverted MSHRs [Farkas and Jouppi 1994] is allocatedstatically for each possible identification tag and are enumerating

Page 3: Reorder Buffer: An Energy-Efficient Multithreading Architecture for Hardware …web.yonsei.ac.kr/wjlee/document/reorderbuffer.pdf · 2015-08-09 · Reorder Buffer: An Energy-Efficient

Ray Accumulation Unit

TRV Pipeline

Control Buffer

Pipeline latch

Logic

rays rays

dataNon-Blocking

CACHE

R0 R3 R7 R9 0x1 4 N

R2 … ... 0x2 3 N

.. 0x3 1 N

… … 0x4 2 N

addr. datarayscounter

Pipeline (Traversal or Intersection)

0x8 R13

0x4 R11

0x1 R10

Input Buffer

hitmiss

ready

(a) Ray Accumulation Unit

TRV Pipeline

Pipeline latch

Logic

rays rays

dataNon-Blocking

CACHE

Pipeline (Traversal or Intersection)

0x8 R13

0x4 R11

0x1 R10

Input Buffer

hitor

miss

miss

hit

(b) Retry

Figure 2: Two conventional multithreading architectures for MIMD ray tracing hardware. (a) Ray Accumulation Unit (RAU): the ray threadthat miss the cache is stored in the dedicated memory buffer, called the Ray Accumulation Buffer (RAB), and is scheduled for latency hiding.If the ray (R10) is cache-missed and an RAB row with the same address (0x1) is already full, RAB cannot be used and the pipeline has tobe stalled even though the other row has an empty slot. (b) Retry: even though the pipeline stall can be avoided because the ray thread thatmissed the cache is invalidated and fed to the pipeline, thread bypassing can cause additional energy consumption by logic switching or datamovement in-between pipeline registers.

using a n-way comparator when the data arrives from the next levelcache.

The traditional approach to alleviating the performance degradationby memory divergence is to aggressively use latency hiding as wellas improve the cache locality. To achieve this, recent MIMD raytracing hardware have increased hardware utilization with uniquelatency hiding methods that are all able to conduct subsequent rayprocessing without pipeline stalls via zero-overhead thread switch-ing whenever cache misses occur. In next section, we describe thehardware multithreading scheme for MIMD ray traversal which ismain topic of this paper.

3 H/W Multithreading for MIMD Ray Tracing

The multithreading architecture for recent MIMD ray tracing hard-ware was designed in order to overcome the limitations of GPUray tracers. Modern GPU architectures support hardware multi-threading to achieve massive parallelism. In this approach, severalhundred to thousand threads are concurrently executed, and evenif some threads stall, others can execute during the next cycles.However, incoherent ray traversal with this SIMD-friendly mul-tithreading architecture can increase random memory access andmake cache utilization worse. The register area per streaming mul-tiprocessor (SM) in NVIDIA GPUs is much greater than the com-pute area per SM [Kopta et al. 2010]. To minimize this inefficiencyin terms of area and cache utilization for hardware multithreading,two architectures, called Ray Accumulation Unit (RAU) and Retry,were proposed. In this section, briefly we describe this multithread-ing architecture.

3.1 Ray Accumulation Unit

Nah et al. [2011] proposed a unique multithreading architecture,called RAU (Figure 2(a)), in their desktop-level ray tracing hard-ware accelerator called the T&I Engine. The RAU consists of a ded-icated memory buffer, called the Ray Accumulation Buffer (RAB),and control logic. The RAB consists of several fields for storingthread information, ray data, cache address, occupation counter,

and ready bit, and is structured using two-dimensional representa-tion to group rays that have the same address. The cache is designedas a non-blocking type to service subsequent requests even after acache miss has occurred.

The operational flow of the RAU is as follows. Initially, the pipelineaccesses the cache for a ray thread. If a cache miss occurs, the RAUallocates space and stores the corresponding ray thread. If the cacheaddress of the rays fetched from the input buffer is the same as theaddress among the rays stored in the RAU, the corresponding rayis stored in the same row in an RAB, which improves the cache lo-cality by subsequently fetching these rays when the requested dataarrive at the cache. Subsequently, the pipeline first searches the rowof “ready rays” in the RAB, that is, the rays for which the miss iscomplete and the requested data have arrived at the cache. If thishas occurred, the rays in the corresponding row are fetched in acycle-by-cycle manner; otherwise, the next ray waiting in the inputbuffer is fetched. The RAU borrowed the concept of the explicitlyaddressed MSHRs [Farkas and Jouppi 1994], each row of the RABcorresponds to one outstanding cache line address and collects upto N rays (requests).

The RAU can efficiently hide the latency by accumulating the raythread that missed the cache in the dedicated buffer, and imme-diately process the other rays. Moreover, the rays that referencethe same cache line are accumulated in the same row in an RAB,which can achieve ray reordering effects. However, there are twodisadvantages to using the RAU. First, it requires additional buffermemory for the RAB (3 KB per pipeline, 60 KB in the case of theT&I unit [Lee et al. 2013] (i.e., 3 KB per pipeline× 20 pipelines (5pipelines–comprising four traversals and one intersection–per core× 4 cores))). Second, the RAB can overflow in the early stage whenit is adapting to environments that require relatively long DRAM la-tencies (100∼300 cycles), such as mobile SoC. In particular, therecan be an inappropriate case, such as if the ray (R10) is cache-missed and an RAB row with the same address (0x1) is alreadyfull–in which case the RAB cannot be used and the pipeline has tobe stalled even though the other row has an empty slot (Figure 2(a)).Thus, the pipeline stall resulting from this early RAB overflow can-not be avoided.

Page 4: Reorder Buffer: An Energy-Efficient Multithreading Architecture for Hardware …web.yonsei.ac.kr/wjlee/document/reorderbuffer.pdf · 2015-08-09 · Reorder Buffer: An Energy-Efficient

3.2 The Retry Method

As an alternative solution, Kwon et al. [2013] proposed a new mul-tithreading method, called Retry, that efficiently hides the latency intexture fetches for Coarse Grained Reconfigurable Arrays (CGRA)based mobile GPUs that schedule the kernels in compile time. TheRetry architecture does not store the threads when access to thetexture cache is missed. Instead, it invalidates the cache-missedthreads and executes the kernels with valid and invalid threads inorder to avoid pipeline stall. If the texture cache miss is complete,kernel execution is retried for the invalid threads. A mobile GPUis also based on this retry approach [ARM 2015]. The recent raytracing hardware RayCore [2014b] uses the same idea for latencyhiding, called in this case “looping for next chance,” which inval-idates the ray threads that missed the cache and feeds them to thepipeline. The invalidated ray threads are bypassed in the pipelinestages and re-entered into the input buffer through a feedback loop,and then cache access is retried (Figure 2(b)). This architectureis easily implementable with a single-threaded pipeline and non-blocking cache and the state machine for control logic is quite sim-ple. In particular, it does not require any additional memory be-cause the pipeline register can be reused for thread storage.

However, this architecture has a critical disadvantage in that it canincrease the amount of energy consumed because pipeline bypass-ing of the invalidated threads causes increased circuit switching andaccess to internal memory elements. In particular, if the DRAM la-tency increases, the number of bypasses can also increase becausethe miss penalty is not complete, even though the invalid ray threadshave re-entered the pipeline through the feedback loop. For ex-ample, if a ray tracing pipeline with 20 stages (T&I units in Ray-Core [2014b]) is adopted to mobile SoC, in which the DRAM la-tency usually requires 100∼300 cycles, the ray threads that meet themiss in the level-one (L1) and level-two (L2) cache have to bypassthe pipeline at least 5∼15 times meaninglessly. Moreover, when-ever an L1 cache miss occurs, it is simply fed to the pipeline for thenext chance; thus, the corresponding thread is bypassed even whenthe L2 cache is a hit. This can increase the number of pipelinebypasses and access to the cache, which increases the amount ofenergy consumed. As a result, this feature of the Retry architecturecan be a crucial disadvantage in systems targeted at mobile devices.

We propose a new multithreading architecture for MIMD ray trac-ing hardware that solves the problems experienced by the RAU andRetry architectures, and provides latency hiding without additionalenergy and memory consumption.

4 Proposed Architecture

The goal of our research is to develop a low-cost and low-energyhardware multithread architecture for MIMD ray traversal that canbe adopted for use by dedicated hardware [Nah et al. 2014b],hardware-software hybrid solutions [Lee et al. 2013], and raytraversal hardware integrated into existing GPUs [McCombe 2014;Keely 2014]. We begin with a baseline architecture, called the T&Iunit [Lee et al. 2013] (Figure 3), which is an accelerator hardwarefor traversal and intersection operation that is used in a ray trac-ing GPU, called Samsung reconfigurable GPUs based on Ray Trac-ing (SGRT), targeted at mobile SoC. The T&I units have been im-plemented at the level of RTL with verification at the FPGA andASIC levels [Lee et al. 2014a], and also have a flexible cycle-accurate simulation model to enable easy and fast architecture ex-ploration [Kim et al. 2012b; Lee et al. 2014b; Lee et al. 2014a].

The baseline MIMD architecture model, i.e., T&I units, consists ofa ray dispatch unit (RD), multiple traversal units (TRVs), and anintersection unit (IST). Each unit is connected to an internal buffer

L1$

Input Buffer

Pipe

L1$

Input Buffer

PipeStack

Ray Dispatch Unit

L1$

Input Buffer

PipeStack

L1$

Input Buffer

PipeStack

L1$

Input Buffer

PipeStack

TRV Units

IST Unit

From Shader (Rays)

To Shader(Hit points)

L2 Cache

Figure 3: Our baseline hardware architecture, T&I units.

that passes rays between units. The RD fetches rays from the raybuffer if it is used in the shader core of GPUs [Lee et al. 2013;McCombe 2014; Keely 2014] or dedicated hardware [Nah et al.2014b], and dispatches them to idle TRVs. MIMD ray traversal isperformed by the TRVs, each of which consists of a memory pro-cessing module (input buffer, L1 cache, stack) and a computationpipeline. The L2 cache for multiple TRVs between off-chip mem-ory and the L1 cache reduces memory traffic and facilitate scalableperformance. The computation pipeline includes the general op-eration for BVH traversal such as node test, ray-nodeAABB inter-section test, and stack operation. The output of the TRV pipelinebranches into three paths: a feedback loop path to the input bufferfor iterative visits to the inner nodes; an output path to send raysto the IST when they reach a leaf node; and an output path to sendrays to the shader when they have completed BVH tree traversal.The IST unit is identical to the TRV unit except for the operation inthe pipeline and the existence of the stack.

The goal of our multithreading architecture is to efficiently disguiselong memory latency at low-cost and low-energy consumption. Toprevent unnecessary energy consumption without incurring addi-tional memory cost, we reuse the existing resources, such as theinput buffer, of the baseline architecture. If the ray fetched fromthe input buffer misses the cache, it is simply retained in its placein the input buffer. In other words, the storing and buffering of theray threads that miss the cache are accomplished in the same space.By adding a small field (28 bits per entry) to the input buffer, wesatisfy these requirements. This new input buffer is called the Re-order Buffer, because the processing order of the ray is dynamicallyreordered in this buffer. The Reorder Buffer is cost-effective be-cause it does not need dedicated memory for storing threads, andis also energy-efficient because it does not bypass the invalidatedrays. Moreover, the priority-based scheduler of the Reorder Buffercan improve the cache locality and minimize re-access to the cache.

Modern GPUs based on the sort-last fragment approach also usea reorder buffers which exists between shader and raster operation(ROP) units, as described by Ragan-Kelley et al [2011]. Strict or-dering is enforced using reorder buffers of hundreds or thousandsof entries before the ROP units that update the framebuffer. Thisallows fragments to be kept asynchronous and independent to aslate as possible in the pipeline, maximizing available parallelism atthe cost of fine-grained global synchronization. Unlike the reorderbuffer in GPUs, the purpose of our reordering is not to keep strictordering but to energy-efficiently hide latency.

Page 5: Reorder Buffer: An Energy-Efficient Multithreading Architecture for Hardware …web.yonsei.ac.kr/wjlee/document/reorderbuffer.pdf · 2015-08-09 · Reorder Buffer: An Energy-Efficient

TRV Pipeline

Pipeline latch

Logic

rays rays

dataNon-Blocking

CACHE

Pipeline (Traversal or Intersection)

hit

. … … …

1 - 0x8 R13

0 0 0x4 R2

0 0 0x1 R0

Reorder Buffer

ControlBuffer

valid ready addr. ray

Figure 4: Reorder Buffer–the proposed architecture

4.1 Reorder Buffer

Figure 4 shows a hardware unit in the ray tracing hardware of theproposed multithreading architecture, Reorder Buffer. Similar tothe RAU and the Retry, the cache is designed as non-blocking inorder to service subsequent requests even after a cache miss hasoccurred. The cache system passes several signals to the controllogic in the Reorder Buffer. These signals include not only theresults of L1 cache access (hit/miss) but also other cache eventssuch as the results of L2 cache access (hit/miss) and notification ofmiss completion. The Reorder Buffer is inspired by the invertedMSHRs [Farkas and Jouppi 1994] that handle the outstanding missrequests in standard non-blocking cache architectures.

The Reorder Buffer, a key component in our multithreading archi-tecture, consists of buffer memory and simple control logic. Thebuffer memory holds and retains the threads, and the control logicmanages ray scheduling. The pipeline is the computation logic thatperforms traversal or intersection operations. The TRV and the ISTunits can be designed either as separate units [Schmittler et al. 2004;Woop et al. 2005; Lee et al. 2013] or as one integrated unit [Nahet al. 2014b]. The Reorder Buffer can be applied to both types. Ascan be seen in Figure 4, the dedicated memory and the bypass pathare eliminated, as per our goal.

To schedule the rays in the Reorder Buffer, we add the followinginformation (28 bits per entry) to the input buffer:

• Valid (1 bit): This is a Boolean value that indicates the typeof ray stored in the buffer. If the ray has newly arrived in thebuffer and has not yet accessed the cache, the control logicsets this value to “1.” If the ray has accessed and missedthe cache, the value is set to “0.” This value is used for rayscheduling (Section 4.2) with the Ready bit.

• Ready (1 bit): This is a Boolean value that indicates whethera retained ray is ready to enter the pipeline when the cachemiss is complete. If a ray has missed cache access, it is re-tained and its Ready bit is set to “0.” When the requested dataarrive at the cache from lower level memory and the corre-sponding cache line is filled with the arrived data, the cachesearches the retained rays that have the same address and setstheir Ready bits to “1.” In the next cycle, the pipeline fetchesthe rays that have their Ready bits set to “1” and enters themwith the cache data into the pipeline.

• Address (26 bits): The cache address is used to reference thedata. The Reorder Buffer has a cache address for two reasons.

Is the buffer full?

Wait

Found a ray (Rs)has the same addr.

as Rn?

Update Rn from Rs

(valid ‘0’, ready ‘0’)

Initialize Rn

(valid ‘1’, ready null)

Input a new ray (Rn) to the buffer

Yes

No

Found a rayon cache event?

(ready ==‘1’)

Found a new ray?(valid==‘1’)

Cache request: the shape address of the ray

Wait

Cache hit?

Output the ray to the pipeline

Retain the ray(ready ‘0’, valid ‘0’)

First stage

Second stage

Yes

No

(a) Output scheduling

(b) Input scheduling

Figure 5: Operational flow of the Reorder Buffer (a) output (b)input.

First, when the cache miss is complete and the requested dataarrive at the cache block, the cache searches for the ray that re-quested the corresponding data in the Reorder Buffer with thisaddress as a key. Second, when a new ray arrives at the Re-order Buffer, the control logic tests whether there is a retainedray that has the same address as that of the new ray (Section4.2). The address field does not need to store the cache lineoffset (6 bits) because it can guarantee the uniqueness as a keywith the tag and the set part. The cached data can be a BVHtree node [Lee et al. 2013] or a primitive AABB [Nah et al.2014a] if the pipeline is the TRV unit, and a primitive if thepipeline is the IST unit.

The overhead that is added to the Reorder Buffer is minimal. Asstated previously, only 28 Bits (address, ready, and valid bits) areneeded per entry. If the size of the Reorder Buffer is 32, the re-quired additional memory is 112 Bytes (32 × 28 bits). This addi-tional overhead is negligible compared with the baseline and Retryarchitectures. In contrast, the additional memory size for RAU, i.e.,RAB, from the baseline architecture is 2,976 B (32 × ray payload+ 8 × (cache address, cache data, occupation counter, ready bit) =32 × 84 B + 8 × 36 B) if the combination is a 4 × 8 array, whichis the optimal size in terms of performance per unit size [Nah et al.2011]. Thus, the Reorder Buffer can conserve up to 26.6 timesmore memory than with the RAU.

4.2 Ray Scheduling

In this section, we describe the principle of ray scheduling and theoperation of the Reorder Buffer. In the Reorder Buffer, if any rayfetched from the buffer has missed the cache, the corresponding ray

Page 6: Reorder Buffer: An Energy-Efficient Multithreading Architecture for Hardware …web.yonsei.ac.kr/wjlee/document/reorderbuffer.pdf · 2015-08-09 · Reorder Buffer: An Energy-Efficient

1 - 0x2 R1

0 0 0x1 R0

Cache 1 - 0x3 R2

0 0 0x2 R1

0 0 0x1 R0

1 - 0x4 R3

0 0 0x2 R1

0 0 0x1 R0

(R3, 0x4)(R2, 0x3)

.

.

R0 Miss

1 - 0x1 R0

Cache

(R3, 0x4)(R2, 0x3)(R1, 0x2)

.

.

request request

CacheR1 Miss

request

(R3, 0x4)

.

.

CacheR2 Hit!

R2 + cache data

.

.

valid ready addr ray

1 - 0x5 R11

1 - 0xA R10

0 0 0x5 R4

0 0 0x2 R1

0 1 0x1 R0

Cache

1 - 0x5 R11

1 - 0xA R10

0 0 0x5 R4

0 0 0x2 R1

0 0 0x5 R11

1 - 0xA R10

0 0 0x5 R4

1 - 0xA R10

0 0 0x5 R4

0 0 0x2 R1

0 1 0x1 R0

Cache

(R11, 0x5)

Cache Cache

R0 Retained R1 Retained R2 dispatched

requestR0 Selected

R0 Hit!

R0 dispatched

R0 + cache data...

.

.

...

R0 + cache data

.

.

R1 Hit!

R1 dispatched

R1 + cache data

request

updated

valid ready addr ray

valid ready addr ray valid ready addr ray valid ready addr ray

valid ready addr ray valid ready addr ray valid ready addr ray

(a) (b) (c) (d)

(e) (f) (g) (h)

cache event

(miss complete at 0x1)

cache event(miss complete at 0x2)

Figure 6: Operation of the Reorder Buffer: (a) Rays R1–R3 are entering the buffer, R0 arrives and accesses the cache with address 0x1.(b) In the next cycle, R0 misses access and is retained (valid/ready is set to “0”). At the same time, R1 arrives and accesses the cache withaddress 0x2. (c) In the next cycle, R1 misses access and is retained and R2 also accesses the cache. (d) In the next cycle, R2’s access is ahit in the cache and R2 is dispatched to the pipeline with cache data, while R0 and R1 are still retained. (e) After several hundred cycles,the retained and new inputted rays are mixed in the buffer. The cache event (miss complete) occurs and the “ready bit” of the rays with theaddress 0x1 is set to “1.” (f) R0 is selected with high priority (ready bit is “1”) by the pipeline and accesses cache again. (g) In the nextcycle, R0’s access is a hit in the cache and it is dispatched to the pipeline. (h) New input ray R11 references the same address with retainedray R4 in (g); thus, R11’s valid/ready bit is set to “0.” Rays R4 and R11 are set to be processed subsequently after the miss is complete.

is retained and the next ray is processed in order to avoid a pipelinestall. Therefore, the retained rays and the newly inputted rays co-exist in the buffer. The priority with which rays are selected fromamong them can affect the overall performance.

Figure 5(a) is the operational flow of the output scheduling in theReorder Buffer. The operation primarily comprises two stages. Inthe first stage, a ray is selected and a request is made to the cache. Inthe second stage, the ray is processed in accordance with the resultsof cache access. This is similar to the scheduling scheme of theRAU [2011], but the algorithm (and control logic) is much simpler.If there are rays to be processed in the Reorder Buffer, the pipelineselects a ray using the following priority scheme.

1. The “ready rays” with ready bit set to “1” by the cache events(L1 cache miss completion (cache line fill) or L2 cache hit) areselected first, because their requested data exist in the cache.

2. “New rays,” which have valid bit set to “1,” are selected.

Once a ray is selected by the pipeline, the corresponding ray ac-cesses the cache and, if a cache hit occurs, the ray is immediatelydispatched with the cached data and removed from the buffer. Oth-erwise, the ray is retained in the buffer and its valid/ready bit is setto “0.” If a cache miss has occurred, the request is transferred to thenext-level memory and the non-blocking cache prepares to acceptthe next requests. Thus, the pipeline does not have to be stalled

during miss penalty.

Figure 5(b) depicts the operational flow of input scheduling in theReorder Buffer. When a new ray is inputted to the buffer, the buffermight already have rays that reference the same address as the newray, which implies that the data referenced by the new ray werealready requested by a certain ray in the buffer. Thus, the new raydoes not have to access the cache, and just waits for arrival of thedata. In this case, the valid/ready bit of the new ray is set to “0”without any cache access. Once the cache miss is complete and thecache signals to the Reorder Buffer, the cache searches the rays inthe buffer that have the same address and set their ready bits to “1.”Two rays that have the same address become ready at once, and aresubsequently fetched in the next cycle by the selection algorithm(Figure 5(a)). Thus, the Reorder Buffer can achieve the reorderingeffect to improve ray coherency, which is a feature of the RAU. Inthe RAU, there was a problem when a ray missed the cache and theRAB row that had the same address was already full; the RAB couldnot be used even though the other row may have had an empty slot.Unlike the RAU, the Reorder Buffer can maximize the reorderingeffect as long as there is space in the buffer and no overflow is likelyto occur.

Our scheduling algorithm has a similar purpose to that of the in-verted MSHR [Farkas and Jouppi 1994] in the non-blocking cache.The MSHR is a hardware data structure that holds various pieces

Page 7: Reorder Buffer: An Energy-Efficient Multithreading Architecture for Hardware …web.yonsei.ac.kr/wjlee/document/reorderbuffer.pdf · 2015-08-09 · Reorder Buffer: An Energy-Efficient

Table 1: Comparison of the cache miss ratio with varying the DRAM latencies.

L1 cache L2 cacheDRAM Multithreading method Reduction from Multithreading method Reduction from

Test scene latency Baseline RAU Retry Reorder RAU Retry Baseline RAU Retry Reorder RAU RetryConference 10 10.45 10.03 9.68 9.22 +0.82 +0.46 28.84 20.04 26.98 22.30 -2.26 +4.68(282K tri.) 100 11.94 10.18 9.71 9.12 +1.06 +0.58 39.15 22.60 27.88 22.72 -0.12 +5.15

200 12.21 10.51 9.83 9.15 +1.35 +0.68 40.16 25.43 28.79 23.30 +2.13 +5.49300 13.71 11.29 10.38 9.55 +1.74 +0.84 45.51 28.49 31.65 25.33 +3.16 +6.32

Fairy 10 15.24 14.64 13.80 13.53 +1.10 +0.27 30.10 26.86 25.88 24.89 +1.96 +0.99(174K tri.) 100 17.55 14.90 13.83 13.49 +1.40 +0.34 40.99 29.65 26.76 25.38 +4.27 +1.37

200 17.58 15.13 13.84 13.45 +1.68 +0.39 41.32 31.89 27.51 25.76 +6.13 +1.75300 17.62 15.27 13.84 13.43 +1.84 +0.42 41.62 33.16 28.04 25.97 +7.19 +2.07

Hairball 10 34.99 33.41 27.66 27.42 +5.99 +0.24 53.56 55.21 52.23 51.81 +3.40 +0.42(2.9M tri.) 100 42.35 35.54 28.76 28.47 +7.07 +0.29 63.04 58.01 55.26 54.75 +3.26 +0.51

200 66.05 42.84 32.21 31.69 +11.15 +0.52 81.74 66.60 67.61 67.00 -0.40 +0.61300 48.63 43.73 32.51 32.01 +11.72 +0.51 83.45 67.38 68.95 68.39 -1.00 +0.57

San Miguel 10 58.95 35.88 28.59 28.17 +7.72 +0.42 81.05 59.72 60.42 59.74 -0.02 +0.68(7.8M tri.) 100 64.55 36.64 28.94 28.51 +8.13 +0.43 84.52 60.66 60.78 60.13 +0.53 +0.65

200 66.68 37.07 29.15 28.73 +8.35 +0.42 86.08 61.19 60.96 60.35 +0.85 +0.62300 67.93 37.48 29.21 28.80 +8.68 +0.41 87.06 61.11 61.05 60.42 +0.68 +0.63

of information about miss requests and facilitates a successful re-turn to those requests. In particular, unnecessary memory requestsare prevented by combining multiple requests to the same cacheblock into one. The cache control logic stores an array of addi-tional descriptors (MSHRs), allocated statically for each identifi-cation tag in MSHR. When a new request wants to access a cacheline that is already being fetched, a new descriptor is created butno request is sent to the next level cache. When data arrives fromthe next level cache, a n-way comparator is employed to enumer-ate the requests referencing the cache line. Even though this in-verted MSHR scheme is applied to the Reorder Buffer, the ReorderBuffer can make benefits and be also applicable to the general non-blocking cache, because the functions of retaining and schedulingit provides. If the non-blocking cache uses the implicitly addressedMSHRs [Kroft 1981], the Reorder Buffer can perform buffering,retaining and scheduling. If the cache uses the inverted MSHRs,the Reorder Buffer can perform buffering and retaining. Becausethe ray reordering effects comes from not only the retaining butalso the scheduling, the performance and power efficiency can beobtained separately from each of these functions. Thus, we can getadvantages of the combination of the Reorder Buffer and the non-blocking cache with MSHRs of any type.

Figure 6 illustrates the operation of the Reorder Buffer. The ray thatmisses the cache is retained and invalidated in the buffer (a)∼(c),and the ray that hits the cache is immediately dispatched (d). Af-ter several hundred cycles, the retained and new inputted rays aremixed in the buffer (e). A ray is selected by priority (f). If the newinputted ray references the same address as the retained ray (g),the two rays are set to be processed subsequently by resetting theirvalid/ready bits (h).

5 Results and Analysis

In this section, we describe the functional validation and evaluationof the proposed multithreading architecture. We explain the simula-tion setup and analyze the simulation results in terms of the cache,pipeline utilization, and energy efficiency, compared with the base-line, the RAU and the Retry architectures.

5.1 Simulation Setup

To verify and evaluate the proposed architecture, we utilized thecycle-accurate simulation model of the T&I unit in SGRT [Lee et al.

2013]. This simulator provides rendered images, total executioncycles, hardware utilization, cache statistics, and expected perfor-mance. In this simulation model, a GDDR3 memory simulator fromGPGPUsim [Bakhoda et al. 2009] is adopted to execute accuratememory access. The default configuration of this simulator is RAUmultithreading. Therefore, we first converted it to the baseline ar-chitecture, i.e., single threaded, and then extended it to the RAU,the Retry, and the proposed Reorder Buffer architecture. Further,we integrated an energy model into the simulator model, based onthe method in the architecture of Kopta et al. [Kopta et al. 2013],to evaluate the energy consumption for each architecture. Duringthe simulation, the access counts to the memory elements (regis-ters, buffer, SRAM, L1/L2 cache, DRAM) were traced and the en-ergy consumption analyzed using CACTI 6.5 [Muralimanohar et al.2007]. Table 2 shows energy estimates for each memory elementfrom Cacti 6.5. We also modified the DRAM section of the simula-tor to enable parameterizable latency in order to evaluate the impactof various DRAM latencies.

The hardware setup was structured as follows. Most of the configu-ration of the baseline T&I unit architecture was reused. The numberof T&I units was four; the ratio of TRV to IST unit was 4:1; clockfrequency was 500 MHz; and cache configuration was TRV L1 (16KB, 2-way set associative), L2 (8-banked 128 KB 2-way set as-sociative), L1/L2 cache latencies (1/20), TRV pipeline depth (20),IST(32). The buffer size was set to 32 because fair comparison canbe difficult and the throughput can be affected by the backpressureif the size is less than 32.

The software setup was structured as follows. We rendered usingdiffused inter-reflection ray tracing, because there is more chancefor latency hiding (i.e., cache misses) based on our goals. All thescenes were rendered at a resolution of 1024 × 768. We selectedfour test scenes with different complexities: Fairy (174 K triangles),Conference (282 K triangles), Hairball (2.9 M triangles), and SanMiguel (7.8 M triangles), as shown in Figure 7. The Hairball scenewas selected for stress testing because it has extremely dense, finely

Table 2: Estimated energy per access in nanojoules for variousmemories used in our experiment. Estimates are from Cacti 6.5.

Reg. File SRAM L1 cache L2 cache DRAM(128B) (8KB) (16KB) (128KB)0.008 0.0166 0.0255 0.108 16.3

Page 8: Reorder Buffer: An Energy-Efficient Multithreading Architecture for Hardware …web.yonsei.ac.kr/wjlee/document/reorderbuffer.pdf · 2015-08-09 · Reorder Buffer: An Energy-Efficient

Figure 7: Test scenes: Fairy (174 K triangles), Conference (282K triangles), Hairball (2.9 M triangles), and San Miguel (7.8 Mtriangles).

detailed geometry. This presents challenges to the cache system asrays must traverse a more complex tree, and incoherent rays accesslarge regions of the geometry footprint in unpredictable patterns.We also expect a bottleneck in the IST unit as the very complex ge-ometry results in the leaf node having many more primitives, com-pared with the MIMD TRV unit with each of the multithreadingarchitectures in this extreme case.

5.2 Cache Utilization

We analyzed the impact on cache utilization of various multithread-ing architectures. Each architecture manages the rays that miss thecache in a different way; hence, the processing order of the rayscan differ. Table 1 tabulates the miss ratio of the L1/L2 cache in theMIMD TRV units for baseline and multithreading architecture withvarying the DRAM latencies (10, 100, 200, and 300). The base-line (single threaded) architecture surprisingly records the highestmiss ratio of L1 (10.45∼67.93%) and L2 cache (30.10∼87.06%),because it has no ray reordering effects. For the multithreading ar-chitecture, in the case of Conference, and Fairy of the L1 cache,the miss ratio of the RAU is the highest (10.03∼15.27%). TheRetry (9.68∼13.84%) and the Reorder (9.12∼13.53%) have a sim-ilar level. Incoherent ray tracing with longer DRAM latency makesthe utilization of RAB lower and more frequent pipeline stalls. Asa result, the ray reordering chance can be decreased. In contrast,the Reorder Buffer records the lowest miss ratio because it can re-tain the ray that misses the cache and schedule rays that referencethe same address to be processed subsequently, which results in im-proving the cache localities. This feature is the reason that the missratio is not increased (even decreased, Fairy) even if the DRAMlatency gets longer, unlike to the RAU.

In the case of Hairball, the cache miss ratio is high in all three mul-tithreading architectures (33% on average), as expected. The missratio of RAU sharply increases as the DRAM latency increases. Incontrast, the Reorder Buffer minimizes these trends and achievesa lower miss ratio of up to 11.72% compared with the RAU (atDRAM latency 300). In the case of the San Miguel, the cache missratio is also high in all three multithreading architectures (31.4% onaverage) due to the scene complexity. The Reorder Buffer achievesa lower miss ratio of up to 8.68% compared with the RAU (atDRAM latency 300).

L1 Cache Size (KB)

Tota

l Mem

ory

Siz

e (K

B)

L1 M

iss Ratio

(%)

Memory Size

L1 Miss

0

10

20

30

40

50

60

70

80

0

100

200

300

400

500

600

700

800

1 2 4 8 16 32 64 128

L2-32KB L2-64KB L2-128KB L2-256KB

L2-32KB L2-64KB L2-128KB L2-256KB

Conference

L1 Cache Size (KB)

Tota

l Mem

ory

Siz

e (K

B)

L1 M

iss Ratio

(%)

Memory Size

L1 Miss

San Miguel

0

10

20

30

40

50

60

70

80

0

100

200

300

400

500

600

700

800

1 2 4 8 16 32 64 128

L2-32KB L2-64KB L2-128KB L2-256KB

L2-32KB L2-64KB L2-128KB L2-256KB

Figure 8: Tradeoff between the cache miss ratio and the mem-ory size for the Reorder Buffer architecture (Conference (up), SanMiguel (down), DRAM latency is 200).

The L2 cache also tends to show the superior locality of the ReorderBuffer architecture, with 6.13% less miss ratio (Fairy, at DRAM la-tency 200) compared to the RAU, and 6.32% less miss ratio (Con-ference, at DRAM latency 300) compared to the Retry.

In order to find an optimal L1/L2 cache configuration for the Re-order Buffer architecture, we conducted a cache simulation withvarying the size of the L1/L2 caches. Figure 8 shows the influ-ence of the size of memory on the miss ratio of the L1 cache (i.e.the performance). Cache size is varying from 1KB to 128KB (L1)and from 32K to 256KB (L2). The size of memory is obtainedby the four L1 caches (from the four TRV units) and a L2 cache.This amount gives a rough estimate of the minimum size a cacheshould have. In the case of the low complex scene (Conference),the (16KB-L1, 32KB-L2) is the optimal configuration. However,for the high complex scene (San Miguel), the L2 cache needs to beenlarged because the higher scene complexity presented challengesto the cache system as rays must traverse a more complex tree, andincoherent rays access large regions of the geometry footprint in un-predictable patterns. This is the reason that we applied a 128KB-L2cache to the system.

Page 9: Reorder Buffer: An Energy-Efficient Multithreading Architecture for Hardware …web.yonsei.ac.kr/wjlee/document/reorderbuffer.pdf · 2015-08-09 · Reorder Buffer: An Energy-Efficient

Conference

56.0

36.9 26.1 26.8

82.4 69.5

53.6 39.3

74.0 70.3 63.2 60.6

83.7 77.6 67.5 65.2

17.8 19.1 20.4 28.1 44.0

63.1 73.9 73.2

17.6 30.5

46.4 60.7

8.2 10.6 16.4 11.2 16.3 22.4 32.5 34.8

0%

20%

40%

60%

80%

100%

10 100 200 300 10 100 200 300 10 100 200 300 10 100 200 300

Baseline RAU Retry Reorder

Execution Retry StallFairy

47.2

27.7 18.1 13.3

69.7

52.1 36.6

27.4

72.5 65.2

54.0 43.8

77.0 69.0

56.0 44.8

18.4 21.4

22.1

21.1

52.8

72.3 81.9 86.7

30.3

47.9 63.4

72.6

9.1 13.4 23.8

35.2 23.0

31.0 44.0

55.2

0%

20%

40%

60%

80%

100%

10 100 200 300 10 100 200 300 10 100 200 300 10 100 200 300

Baseline RAU Retry Reorder

Execution Retry Stall

Hairball

10.6 5.0 7.5 7.0 20.1 13.5

6.3 4.4 21.0 16.2 17.3 16.3 21.2 16.2 17.9 16.9

13.2 15.8

66.5 72.2 89.4 95.0 92.5 93.0 79.9 86.5

93.7 95.6

65.9 68.0

16.2 11.4

78.8 83.8 82.1 83.1

0%

20%

40%

60%

80%

100%

10 100 200 300 10 100 200 300 10 100 200 300 10 100 200 300

Baseline RAU Retry Reorder

Execution Retry Stall

San

Mig

uel

DRAM Latency (Cycles)

12.3 11.4 10.9 10.5 20.2

13.0 8.1 5.7

25.3 24.6 23.8 22.7 26.7 25.8 24.9 23.8

74.3 75.2 76.1 77.2 87.7 88.6 89.1 89.5

79.8 87.0 91.9 94.3

0.4 0.2 0.1 0.1

73.3 74.2 75.1 76.2

0%

20%

40%

60%

80%

100%

10 100 200 300 10 100 200 300 10 100 200 300 10 100 200 300

Baseline RAU Retry Reorder

Execution Retry Stall

Figure 9: Breakdown of the cycles spent in the pipeline with vary-ing DRAM latencies.

5.3 Pipeline Utilization

Figure 9 shows the breakdown of the cycles spent in the pipelinewith varying DRAM latencies. It can be used to evaluate the im-pact on the pipeline utilization as DRAM latency increases. Thebreakdown consists of three types:

• Execution: The ratio of the effective running time in thepipeline to the total time (i.e., pipeline utilization).

• Retry: The ratio of the bypass time of the invalidated ray inthe pipeline to the total time (only for the Retry architecture).This cannot be included in the effective execution time.

• Stall: The ratio of the stall time of the pipeline to the total time(by the overflow of RAB/input/Reorder Buffer or the cachemiss).

As the DRAM latency increases, the effective utilization of theRAU becomes worse and Retry and the Reorder record a similarlevel. In the case of Retry, the stall occupies the smaller portion,but the retry ratio is high, which consumes time in the pipeline. Inthe case of the RAU, the pipeline utilization drops sharply as the

DRAM latency increases. When the latency moves from 10 to 300,the utilization decreases to less than one-half (Conference: 82→39Hairball: 20→4%, San Miguel: 20→5%). If the DRAM latencyis relatively short (< 100 cycles), the data can arrive at the cachewithin a suitable timeframe and the rays accumulated in the RABcan be consumed well; then, the ratio of the input to the outputcan be balanced. Otherwise, the consumption ratio of the RAB cangradually decrease, which results in the RAB and the input bufferoverflowing and the ratio of the pipeline stall increasing. As a re-sult, the DRAM latency cannot be hidden. A solution to this prob-lem would be to enlarge the RAB, but this would incur additionalcost. The Retry records the lowest ratio of the pipeline stall whenthe latency increases from 10 to 300. This is because bypassingcan minimize the pipeline stall. However, the bypass time to thepipeline cannot contribute to effective utilization. In contrast, theReorder Buffer retains the missed rays in the buffer for a minimaltime without any retry time, which achieves better utilization of upto 25.9% (Conference, at latency 300, 39.3→65.2%) compared tothe RAU, and 9.6% (Conference, at latency 10, 74.0→83.7%) com-pared to the Retry.

In the case of the Hairball, the three multithreading architecturesdo not record high utilization (less than 21%) because the miss ra-tio of the incoherent ray tracing to the complex BVH tree is high, asmentioned in the previous section. In the case of the Retry, interest-ing results in which the ratio of the retry increases sharply (66.5%)when the latency is more than 200 can be seen. This is becausethe IST unit can be a bottleneck when the number of primitives perleaf node is increased and the long DRAM latency can affect theIST unit. The IST bottleneck makes the rays in the output of theTRV unit return to the TRV input on failing to enter the input bufferof the IST unit. As a result, the increased rays of the Retry resultin more energy being consumed. This problem can be resolved byincreasing the number of IST units, which also increases the hard-ware cost. Alternatively, the Unified T&I unit [Nah et al. 2014b]can adaptively handle this case, but this design increases the area ofthe unit pipeline because integration of the different hardware units(TRV and IST) requires that the arithmetic units used in both unitsbecome a union set. In contrast, the Reorder Buffer can achievethe same utilization as that of the Retry under the same conditionwithout any of its unnecessary operations. In the case of the base-line architecture, it records the lowest utilization because it does nothide the latency as expected. This trend is similar in the case of theSan Miguel. Especially, the high complexity of this scene with theRetry architecture causes to the highest ratio of the retry regardlessto the DRAM latency (more than 74%), which eventually is trans-lated into the high energy consumption.

5.4 Energy Efficiency

Figure 10 compares the energy consumption with varying theDRAM latencies, which is separately conducted for both on-chip(registers, buffer, SRAM, L1/L2 cache) and off-chip (DRAM). Weconsider the energy consumption for on-/off-chip memory (exceptpipeline logic) because the value for switching pipeline logic is sim-ilar in each architecture (We assumed that the pipeline bypassing inthe Retry architecture occurs between the pipeline registers, not inthe logic). In the on-chip case (Figure 10(up)), the Retry recordsthe highest consumption because the bypass makes the number ofaccesses to the pipeline register and the SRAM buffer increases,as expected. Moreover, the increasing ratio becomes high as theDRAM latency increases, because the retry ratio gets higher, as de-scribed in Section 5.3. In the case of Hairball, the retry ratio sharplyincreases in more than 200 cycles, which causes 3.4 times more en-ergy to be consumed when the latency moves from 100 to 200. Incontrast, the baseline, RAU, and Reorder consume relatively lessenergy because they retain the missed rays in the buffer and the

Page 10: Reorder Buffer: An Energy-Efficient Multithreading Architecture for Hardware …web.yonsei.ac.kr/wjlee/document/reorderbuffer.pdf · 2015-08-09 · Reorder Buffer: An Energy-Efficient

On

-ch

ipEn

ergy

Co

nsu

mp

tio

n (J

ou

les)

0

0.2

0.4

0.6

0.8

1

10 100 200 300

Baseline RAU Retry Reorder

0

0.1

0.2

0.3

0.4

0.5

0.6

10 100 200 300

Baseline RAU Retry Reorder

0

1

2

3

4

5

10 100 200 300

Baseline RAU Retry Reorder

0

0.5

1

1.5

2

2.5

10 100 200 300

Baseline RAU Retry Reorder

Off

-ch

ipEn

ergy

Co

nsu

mp

tio

n (J

ou

les)

Conference Fairy Hairball

DRAM Latency (Cycles)

0

0.2

0.4

0.6

0.8

1

1.2

10 100 200 300

0

0.2

0.4

0.6

0.8

1

10 100 200 300

0

3

6

9

12

15

10 100 200 300

0

2

4

6

8

10 100 200 300

San Miguel

Figure 10: Comparison of energy consumption with varying the DRAM latencies: (up) on-chip, (bottom) off-chip.

San MiguelConference Fairy Hairball

DRAM Latency (Cycles)

Rel

ativ

e Pe

rfo

rman

ce /

En

ergy

(M

RP

S/Jo

ule

s)

1.76

2.67 2.81

2.12

1.23

2.14 2.69

2.58

1.73

3.03

3.79 3.91

0

1

2

3

4

5

6

10 100 200 300

Baseline RAU Retry Reorder

1.62

2.53 2.59 2.58

1.53

2.93

3.57 3.84

1.86

3.70

4.59 5.04

0

1

2

3

4

5

6

10 100 200 300

Baseline RAU Retry Reorder

1.78

3.07

1.35 1.02

1.81

3.49

2.71 2.73

2.05

4.09 4.06 4.21

0

1

2

3

4

5

6

10 100 200 300

Baseline RAU Retry Reorder

3.03

2.27

1.50 1.11

2.85 3.28 3.43 3.42

4.26

4.90 5.16 5.23

0

1

2

3

4

5

6

10 100 200 300

Baseline RAU Retry Reorder

Figure 11: Comparison of the relative performance per unit energy to the baseline with varying the DRAM latencies.

increasing ratio is not high compared with the Retry (except Hair-ball). The RAU has additional accesses to SRAM (RAB), but it isnegligible because the long latency makes the RAB overflow early.As a result, the Reorder Buffer consumes less energy, up to 30.9%at low complex scene (Fairy, at 300 cycles) and 79.45% at highcomplex scene (Hairball at 300 cycles) compared to Retry, which isproof of the energy-efficiency of our architecture.

In the off-chip case (Figure 10(bottom)), the energy consumptionis purely proportional to the miss ratio of the L2 cache, i.e., theratio of the access of the DRAM. Thus, it is affected by the cachelocality for each multithreading architecture. As mentioned in Sec-tion 5.2, the locality of the L2 cache of the baseline architecture isthe worst because it has no ray reordering effects which increasethe off-chip energy consumed. In the next, the locality of the L2cache of the RAU decreases relatively and the miss ratio increasesas a result of fewer reordering effects with longer DRAM latency,which increases the off-chip energy consumed. By contrast, the Re-order Buffer adapts to the locality by effective ray reordering, theincreasing ratio of the miss rate is tolerable with longer DRAM la-tency, which results in the Reorder Buffer consuming less energy.As a result, the Reorder Buffer could reduce the power consump-tion up to 27.5% (0.53→0.38 Joules) at low complex scene (Fairy,at latency 300) and 9.4% (3.2→2.9 Joules) at high complex scene(San Miguel at latency 300) compared to the RAU, which is proofof the energy-efficiency of our architecture.

Finally, we describe the performance per unit energy in order to

evaluate the energy efficiency of the proposed architecture. Fig-ure 11 compares the performance per unit energy which is the rel-ative number to the baseline architecture. We consider the energyconsumption for on-/off-chip memory except pipeline logic as men-tioned previously. The throughput performance for rendering oneframe (i.e., MRPS) was measured. As shown in the figure, all mul-tithreading architecture outperformed the baseline architecture dueto the latency hiding. Among the multithreading architecture, theReorder Buffer outperformed the RAU and the Retry, and the per-formance gap increases as the DRAM latency increases. When thelatency moves from 10 to 300, the Reorder Buffer records the bestefficiency ranged 1.73∼5.23 times compare to the baseline. In con-trast, the RAU records the efficiency ranged 1.62∼3.07 times andthe Retry records ranged 1.23∼3.84 times. As mentioned in Sec-tions 5.2 and 5.3, the RAU records much lower throughputs withmore pipeline stalls caused by early overflow of the RAB. Further,the RAU consumes slightly more off-chip energy for lower cachelocality. The Retry records a similar throughput to that of the Re-order Buffer, its bypassing feature consumes much more on-chipenergy, which is the reason why it cannot achieve better efficiency.As a result, the proposed Reorder Buffer architecture can achieveup to 4.7 times the energy efficiency of the RAU, and up to 1.5times that of the Retry (San Miguel at latency 300). Thus, the pro-posed Reorder Buffer achieves our objective of being a low-energyand low-cost multithreading architecture.

Page 11: Reorder Buffer: An Energy-Efficient Multithreading Architecture for Hardware …web.yonsei.ac.kr/wjlee/document/reorderbuffer.pdf · 2015-08-09 · Reorder Buffer: An Energy-Efficient

6 Discussion

Buffer memory size: A limitation of the proposed Reorder Bufferis that it requires the input buffer to be a certain size. In our ex-periment, the buffer needed to be able to accommodate at least 16entries for latency hiding and ray reordering. If the buffer size isless than 16, frequent backpressure results in buffer overflow, whichresults in its performance against the RAU with the same-sized in-put buffer being lower. In the case of the Retry, this backpressureproblem is less serious because it does not retain the ray, but thebypassed rays return to the input buffer via the feedback path in ashort time (i.e., the cycles of the number of pipeline stages, 20∼30cycles); therefore, it is not completely free from this problem. How-ever, the Retry can save up to eight entries. Thus, if the memorycost is a more important issue than the energy consumption, as adesign constraint, we can consider a hybrid Reorder-Retry type. Insuch a scenario, when the Reorder Buffer overflows, the missedray thread can be bypassed to the pipeline without being retained,as in the Retry architecture. The missed ray can be retained againwhen the Reorder Buffer has an empty slot. These partial bypassescan increase the energy consumption, but this enables us to use theReorder Buffer with benefits coming from saving much memory(32→8 entries).

Treelet-based ray scheduling: Even if our scheduling algorithmcan partially improve the locality by reordering in the buffer, theproposed approach is not the method that enhances the cache lo-cality itself; thus, it cannot perfectly hide the latency in complexscenes like Hairball. As explained in the introduction, the othersolutions for preventing performance degradation by memory di-vergence is to use the treelet-based scheduling scheme [Kopta et al.2013; Keely 2014]. This approach decomposes a tree into smalltreelets that fit into the local cache, and reschedules the process-ing order of rays, which eventually increase the cache hit ratio andconserves energy. This treelet-based scheduling and our ReorderBuffer can be used exclusively. We can eliminate the auxiliary off-chip traffic by increasing the hit ratio with treelet scheduling andachieve latency hiding by low-energy multithreading with our Re-order Buffer when the cache is missed. We believe that this synergycan be achieved in not only the dedicated ray tracing system [Nahet al. 2014b] but also the traversal hardware tightly integrated inlegacy GPUs [Keely 2014].

7 Conclusion and Future Work

In this paper, we presented an energy- and area-efficient multi-threading architecture for MIMD ray tracing hardware targetedat low-power devices. The proposed multithreading architecture,called Reorder Buffer, constitutes a dynamic reordering of the raysin the input buffer according to the results of cache accesses. Un-like conventional schemes, the Reorder Buffer is cost-effective andenergy-efficient because it does not incur additional thread memorynor energy consumption as it utilizes existing resources. Further-more, our scheduler in the Reorder Buffer can also enhance ray co-herency by enabling rays that have the same address to be processedcontiguously. Simulation results show that our architecture pro-vides better cache utilization of up to 11.7% and energy-efficiencyup to 4.7 times better than the previous architecture. Thus, our ar-chitecture is a potentially versatile solution for future ray tracingapplications, particularly latency-critical applications such as VR,on the mobile SoC environment–limited by memory latency, en-ergy, and area constraints.

There are many avenues for future work. First, we will test thevarious memory configurations in more detail by using a more ac-curate simulator [Wang et al. 2005], implement the proposed archi-tecture at the RTL level, and integrate it with SGRT [2013] and ana-

lyze more accurate simulation with PrimTime PX [Synopsis 2015].Second, we will explore more architecture space by integrating theother configurations, as we mentioned in Section 6 (Retry + Re-order, Treelet scheduling [Kopta et al. 2013; Keely 2014]). Third,we will test and analyze the impact on the Reorder Buffer with anew traversal unit, called a 2-AABB TRV unit [Lee et al. 2014a],to reduce the latency per ray and improve the throughput.

Acknowledgements

Models used are courtesy of Ingo Wald (Fairy Forest), Anat Gryn-berg and Greg Ward (Conference Room), Samuli Laine and TeroKarras (Hairball), and Guillermo M. Leal Llaguno (San Miguel).We would like to thank the anonymous reviewers for their valuablecomments and suggestions to improve the quality of the paper.

References

AILA, T., AND KARRAS, T. 2010. Architecture considerationsfor tracing incoherent rays. In Proceedings of ACM High Perfor-mance Graphics (HPG) 2010, 113–122.

ARM, 2015. ARM flagship mobile GPU, Mali-T760.http://www.arm.com/products/multimedia/mali-performance-efficient-graphics/mali-t760.php.

BAKHODA, A., YUAN, G. L., FUNG, W. W. L., WONG, H., ANDAAMODT, T. M. 2009. Analyzing CUDA workloads using adetailed GPU simulator. In Proceedings of IEEE InternationalSymposium on Performance Analysis of Systems and Software(ISPASS) 2009, 163–174.

CLEARY, J., WYVILL, B., BIRTWISTLE, G., AND WATTI, R.1986. Multiprocessor ray tracing. Comput Graph Forum (CGF)5, 3–12.

ERNST, M., AND GREINER, G. 2008. Multi bounding volumehierarchies. In Proceedings of IEEE Symposium on InteractiveRay Tracing (IRT) 2008, 35–40.

EXYNOS, 2015. Samsung application processor.http://www.samsung.com/exynos.

FARKAS, K. I., AND JOUPPI, N. P. 1994. Complex-ity/performance tradeoffs with non-blocking loads. In Proceed-ings of IEEE International Symposium on Computer Architec-ture, 211–222.

FUJITA, M., AND HARADA, T. 2014. Foveated real-time ray trac-ing for virtual reality headset. Tech. rep., Light Transport Enter-tainment Research.

GARANZHA, K., AND LOOP, C. 2010. Fast ray sorting andbreadth-first packet traversal for GPU ray tracing. ComputerGraphics Forum (Proceedings of EUROGRAPHICS 2010) 29,2, 289–298.

GAUDET, S., HOBSON, R., CHILKA, P., AND CALVERT, T. 1988.Multiprocessor experiments for high-speed ray tracing. ACMTransactions on Graphics (TOG) 7, 151–179.

HARADA, T. 2014. Foveated ray tracing for VR on multiple GPUs.In Proceedings of ACM SIGGRAPH Asia 2014, Course - GPUCompute for Graphics.

KEELY, S. 2014. Reduced precision for hardware ray tracing ingpus. In Proceedings of ACM/EG High Performance Graphics(HPG) 2014, 29–40.

Page 12: Reorder Buffer: An Energy-Efficient Multithreading Architecture for Hardware …web.yonsei.ac.kr/wjlee/document/reorderbuffer.pdf · 2015-08-09 · Reorder Buffer: An Energy-Efficient

KIM, H.-Y., KIM, Y.-J., OH, J., AND KIM, L.-S. 2012. A recon-figurable SIMT processor for mobile ray tracing with contentionreduction in shared memory. IEEE Transactions on Circuits andSystems (TCS) 1, 99, 1–13.

KIM, J.-W., LEE, W.-J., LEE, M.-W., AND HAN, T.-D. 2012.Parallel-pipeline-based traversal unit for hardware-acceleratedray tracing. In Proceedings of ACM SIGGRAPH Asia 2012,Posters, Article No. 42.

KOBAYASHI, H., NISHIMURA, S., KUBOTA, H., NAKAMURA,T., AND SHIGEI, Y. 1988. Load balancing strategies for a paral-lel ray-tracing system based on constant subdivision. The VisualComputer 4, 197–209.

KOPTA, D., SPJUT, J., DAVIS, A., AND BRUNVAND, E. 2010.Efficient MIMD architectures for high-performance ray tracing.In Proceedings of the 28th IEEE International Conference onComputer Design (ICCD) 2010, 9–16.

KOPTA, D., SHKURKO, K., SPJUT, J., BRUNVAND, E., ANDDAVIS, A. 2013. An energy and bandwidth efficient ray tracingarchitecture. In Proceedings of ACM High Performance Graph-ics (HPG) 2013, 121–128.

KROFT, D. 1981. Lockup-free instruction fetch/prefetch cacheorganization. In Proceedings of the 8th International Symposiumon Computer Architecture (ISCA) 1981, 81–87.

KWON, K., SON, S., PARK, J., PARK, J., WOO, S., JUNG, S.,AND RYU, S. 2013. Mobile GPU shader processor based onnon-blocking Coarse Grained Reconfigurable Arrays architec-ture. In Proceedings of IEEE International Conference on Field-Programmable Technology (ICFPT) 2013, 198–205.

LEE, W.-J., SHIN, Y., LEE, J., KIM, J.-W., NAH, J.-H., JUNG,S.-Y., LEE, S.-H., AND HAN, H.-S. P. T.-D. 2013. SGRT: Amobile GPU architecture for real-time ray tracing. In Proceed-ings of ACM High Performance Graphics (HPG) 2013, 109–119.

LEE, J., LEE, W.-J., SHIN, Y., HWANG, S. J., RYU, S., ANDKIM, J. 2014. Two-AABB traversal for mobile real-time raytracing. In Proceedings of ACM SIGGRAPH Asia 2014, Sympo-sium on Mobile Graphics and Interactive Applications (MGIA),Article No. 14.

LEE, W.-J., SHIN, Y., LEE, J., HWANG, S. J., RYU, S., ANDKIM, J. 2014. An energy efficient hardware multithreadingscheme for mobile ray tracing. In Proceedings of ACM SIG-GRAPH Asia 2014, Symposium on Mobile Graphics and Inter-active Applications (MGIA), Article No. 1.

MCCOMBE, J. 2014. New techniques made possible by PowerVRray tracing hardware. In Game Developer Conferecne (GDC)2014, Technical Talk.

MURALIMANOHAR, N., BALASUBRAMONIAN, R., AND JOUPPI,N. 2007. Optimizing NUCA organizations and wiring alterna-tives for large caches with CACTI 6.0. In Proceedings of the40th Annual IEEE/ACM International Symposium on Microar-chitecture, 3–14.

NAH, J.-H., PARK, J.-S., PARK, C., KIM, J.-W., JUNG, Y.-H.,PARK, W.-C., AND HAN, T.-D. 2011. T&I Engine: traver-sal and intersection engine for hardware accelerated ray trac-ing. ACM Transactions on Graphics (Proceedings of ACM SIG-GRAPH Asia 2011) 30, 6 (Dec).

NAH, J.-H., KIM, J.-W., PARK, J., LEE, W.-J., PARK, J.-S.,JUNG, S.-Y., PARK, W.-C., MANOCHA, D., AND HAN, T.-D. 2014. HART: A hybrid architecture for ray tracing ani-

mated scenes. IEEE Transactions on Visualization and Com-puter Graphics (TVCG), 21, 3 (Nov.), 389 – 401.

NAH, J.-H., KWON, H.-J., KIM, D.-S., JEONG, C.-H., PARK, J.,HAN, T.-D., MANOCHA, D., AND PARK, W.-C. 2014. Ray-Core: A ray-tracing hardware architecture for mobile devices.ACM Transactions on Graphics (TOG) 33, 6, Article No. 162.

OVERBECK, R., RAMAMOORTHI, R., AND MARK, W. R. 2008.Large ray packets for real-time whitted ray tracing. In Proceed-ings of IEEE Interactive Ray Tracing (IRT) 2008, 41–48.

PARKER, S. G., BIGLER, J., DIETRICH, A., FRIEDRICH, H.,HOBEROCK, J., LUEBKE, D., MCALLISTER, D., MCGUIRE,M., MORLEY, K., ROBISON, A., AND STICH, M. 2010. Op-tiX: a general purpose ray tracing engine. ACM Transactions onGraphics (Proceedings of ACM SIGGRAPH 2010) 66, 4, ArticleNo. 66.

PRIOL, T., AND BOUATOUCH, K. 1989. Static load balancing for aparallel ray tracing on a MIMD hypercube. The Visual Computer5, 109–119.

QUALCOMM, 2015. Qualcomm flagship mobile GPU, adreno 430.https://www.qualcomm.com/products/snapdragon/gpu.

RAGAN-KELLEY, J., LEHTINEN, J., CHEN, J., DOGGETT, M.,AND DURAND, F. 2011. Decoupled sampling for graphicspipelines. ACM Transactions on Graphics (Proceedings of ACMSIGGRAPH 2011) 30, 3, Article No. 17.

SAMSUNG, 2015. Galaxy Gear VR.http://www.samsung.com/global/microsite/gearvr/.

SCHMITTLER, J., WOOP, S., WAGNER, D., PAUL, W. J., ANDSLUSALLEK, P. 2004. Realtime ray tracing of dynamicscenes on an FPGA chip. In Proceedings of ACM SIG-GRAPH/EUROGRAPHICS Graphics Hardware, 95–106.

SYNOPSIS, 2015. Primetime PX: Power analysis tool.http://www.synopsys.com/Tools/Implementation/SignOff/Pages/PrimeTime.aspx.

TSAKOK, J. A. 2009. Faster incoherent rays: Multi-BVH raystream tracing. In Proceedings of ACM High PerformanceGraphics (HPG) 2009, 151–158.

WALD, I., SLUSALLEK, P., BENTHIN, C., AND WAGNER, M.2001. Interactive rendering with coherent ray tracing. ComputerGraphics Forum 20, 3, 153–165.

WALD, I., BENTHIN, C., AND BOULOS, S. 2008. Gettingrid of packets - efficient simd single-ray traversal using multi-branching bvhs -. In Proceedings of IEEE Symposium on Inter-active Ray Tracing (IRT) 2008, 49–57.

WALD, I., WOOP, S., BENTHIN, C., JOHNSON, G. S., ANDERNST, M. 2014. Embree: A kernel framework for efficientCPU ray tracing. ACM Transactions on Graphics (Proceedingsof ACM SIGGRAPH 2014) 33, 4, Article No. 143.

WANG, D., GANESH, B., TUAYCHAROEN, N., BAYNES, K.,JALEEL, A., AND JACOB, B. 2005. DRAMsim: A memory-system simulator. In Proceedings of SIGARCH Computer Archi-tecture News, 100–107.

WOOP, S., SCHMITTLER, J., AND SLUSALLEK, P. 2005. RPU: aprogrammable ray processing unit for realtime ray tracing. ACMTransactions on Graphics (Proceedings of ACM SIGGRAPH2005) 24, 3, 434–444.