Title :
A GPU task generator for rendering
Author :
Petrescu, Alexandru-Lucian ; Moldoveanu, Florica ; Asavei, Victor ; Moldoveanu, Alin ; Ferche, Oana-Maria
Author_Institution :
Comput. Sci. & Eng. Dept., Univ. Politeh. of Bucharest, Bucharest, Romania
Abstract :
We present an original GPU task generator that can be attached to the rasterization based rendering process, in order to provide a dynamic parallelism. Compared to other existing GPU task generators or schedulers our method creates new tasks using the GPU graphics pipeline task scheduler. These are generated in the geometry shader, by means of rasterizing new geometry that produces additional fragments. The parallel processing of these fragments represents the new threads, which are used as general purpose threads. Thus, our solution is extremely lightweight and it can run in parallel with the rasterization based rendering process. By using our generator, work-heavy rendering threads can distribute their load to a sufficiently large group of workers without any CPU interference. By doing this we are effectively reducing the complexity on a per-rendering thread basis and therefore we are able to obtain a performance increase of 1 or even 2 orders of magnitude in critical cases. Tasks such as tracing rays, dynamic geometry generation, expensive BSSRDFs evaluation or ray marching are handled in a unified manner, making it easy to integrate our generator into game engines. In contrast with other GPU task generators and schedulers our method does not occupy all hardware threads nor does it need specialized hardware, only requiring Shader Model 5. Since rarely are dynamic rendering tasks complicated enough to generate dynamic child tasks on their own, our generator can be configured to run as just a simple non recursive task dispatcher.
Keywords :
computational complexity; computational geometry; graphics processing units; ray tracing; rendering (computer graphics); BSSRDF evaluation; GPU graphics pipeline task scheduler; GPU task generator; complexity reduction; dynamic child tasks; dynamic geometry generation; dynamic parallelism; game engines; general purpose threads; geometry shader; nonrecursive task dispatcher; per-rendering thread basis; rasterization based rendering process; ray marching; ray tracing; schedulers; shader model 5; Generators; Geometry; Graphics processing units; Instruction sets; Pipelines; Rendering (computer graphics); Synchronization; dynamic parallelism; dynamic task dispatch; rasterization based rendering; task scheduling on GPU;
Conference_Titel :
System Theory, Control and Computing (ICSTCC), 2014 18th International Conference
Conference_Location :
Sinaia
DOI :
10.1109/ICSTCC.2014.6982475