Vertex-Transformation Streams
Youngmin Kim , Chang Ha Lee , and Amitabh Varshney


Overview

Overview  

We introduce the idea of creating vertex and transformation streams that represent large point data sets via their interaction. We discuss how to factor such point datasets into a set of source vertices and transformation streams by identifying the most common translations amongst vertices. We accomplish this by identifying peaks in the cross-power spectrum of the dataset in the Fourier domain. We validate our approach by integrating it with a view-dependent point rendering system and show significant improvements in input geometry bandwidth requirements as well as rendering frame rates.



Motivation

Common Translations  

The recent evolution of graphics processing units (GPUs) into powerful and programmable stream processors is revolutionizing the way we look at the traditional graphics pipeline. Recent advances in the development of a stream programming environment for GPUs and the use of stream programming for GPUs have enabled graphics researchers and practitioners alike to view graphics operations in the context of data parallel semantics. The stream programming abstraction allows us to consider graphics primitives as streams of records and graphics operations as kernels that operate on such streams. This simple and yet compelling abstraction has not only had a powerful impact on graphics applications, it has also enabled a wide variety of applications from diverse disciplines such as scientific computing, machine learning, signal processing, computer vision, real-time audio, and computational biology to be mapped on to the GPUs. As the size of a floating-point unit on a 90 nm chip has decreased to almost 0.1% of its area, the challenge has gradually shifted away from trying to ac- commodate multiple processing units on a single chip towards maximizing the returns from the available bandwidth. In other words, arithmetic is cheap and bandwidth is the critical problem.


Contributions

This paper presents a novel method to dramatically enhance the arithmetic intensity (the compute to bandwidth ratio), for vertex streams on the GPUs. The inspiration for our work lies in the idea that two interacting streams are significantly more powerful than a single stream. The recent emergence of instance streams in modern GPUs has allowed us to formulate and validate our ideas on representing geometry as two interacting streams of coordinates and transformations. The main contributions of this paper are:

  1. Interacting Streams: We introduce the idea of interacting vertex and transformation streams to encode general point cloud datasets and discuss how these streams can be decoded using modern vertex shaders.
  2. Vertex-Transformation Pools: We discuss how to efficiently build vertex and transformation streams from a pool of paired vertices and transformations.
  3. Transformation Palettes: We outline a method to identify the most common transformations that can map a set of vertices to itself using the Fast Fourier Transform.
  4. View-dependent Transformation Streams: We show how our approach of using transformation streams can improve the arithmetic intensity in a view-dependent rendering application.

Common Translations

 

 

Vertices

 

 

(0, 0, 0)

(1, 0, 0)

(1, 1, 0)

(0, 1, 0)

Translations

(0, 0, 0)

1

1

1

1

(0, 0, 1)

0

1

1

1

(3, 0, 0)

1

1

0

0

(3, 0, 1)

1

0

1

1

Figure & Table: Interaction between the vertex stream and the transformation stream. In these vertex-transformation tables, a 1 indicates interaction between a vertex and a translation and 0 indicates no interaction.

Results

We have compared our results along two dimensions of performance - the improvement in CPU-GPU communication bandwidth and the improvement in the frame rates. We have measured the frame rates under a constant GPU memory usage model. In this model we allocate a fixed amount of memory on the GPU for rendering using our transformation streams method and using the conventional point rendering method. We have achieved 200% to 500% improvement in communication bandwidth to the GPU and 17% to 32% improvement in frame rates for the models below.

Model

Category

Conventional

Transformation Streams

Troll

# of vertices

1.69M

1.69M

Frame rates

20.3FPS

24.3FPS

Per-frame bandwidth

12.92MB

3.45MB

David

# of vertices

1.17M

1.17M

Frame rates

29.8FPS

35.0FPS

Per-frame bandwidth

8.90MB

2.92MB

Manuscript

# of vertices

1.02M

1.02M

Frame rates

32.9 FPS

43.4 FPS

Per-frame bandwidth

7.75MB

1.25MB


Conclusions

We have proposed a novel method for representing 3D point data using interacting streams of vertices and transformations. We have validated this method for accelerating conventional view-dependent rendering applications for points. We hope that our approach of transformation streams will provide a roadmap for future research into how one can use multiple interacting streams in the stream-programming abstraction to map other problems of interest on the GPUs. Our current results appear promising for combining stream programming abstractions with traditional procedural graphics approaches. We believe these are first steps towards more general combinations of multiple data streams for processing geometry, appearance, and physical simulations.


Publications


Acknowledgements

This work has been supported in part by the NSF grants: CCF 04-29753, CNS 04-03313, and CCF 05-41120. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.




© Copyright 2013, Graphics and Visual Informatics Laboratory, University of Maryland, All rights reserved.