Monday
May 2
4:00 - 4:50 PM 
Covell 216
 
Conal Elliott 

Programming Graphics Processors Functionally 

Graphics cards for personal computers have recently undergone a radical
transformation from fixed-function graphics pipelines to
multi-processor, programmable architectures. Multi-processor
architectures are clearly advantageous for graphics for the simple
reason that graphics computations are naturally concurrent, mapping well
to stateless stream processing. They therefore parallelize easily and
need no random access to memory with its problematic latencies. 

This paper presents Vertigo, a purely functional, Haskell-embedded
language for 3D graphics and an optimizing compiler that generates
graphics processor code. The language integrates procedural surface
modeling, shading, and texture generation, and the compiler exploits the
unusual processor architecture. The shading sub-language is based on a
simple and precise semantic model, in contrast to previous shading
languages. Geometry and textures are also defined via a very simple
denotational semantics. The formal semantics yields not only programs
that are easy to understand and reason about, but also very efficient
implementation, thanks to a compiler based on partial evaluation and
symbolic optimization, much in the style of Pan. 

Haskell's overloading facility is extremely useful throughout Vertigo.
For instance, math operators are used not just for floating point
numbers, but also expressions (for differentiation and compilation),
tuples, and functions. Typically, these overloadings cascade, as in the
case of surfaces, which may be combined via math operators, though they
are really functions over tuples of expressions on floating point
numbers. Shaders may be composed with the same notational convenience.
Functional dependencies are exploited for vector spaces, cross products,
and derivatives.


Biography

Conal Elliott's research aims mainly at simplifying the creation of
interactive synthetic media content, while preserving or improving on
the flexibility and performance of mainstream programming approaches.
Continuous and infinite time and space play key roles in simplifying the
conceptual model and improving composability. 

Conal has a PhD from Carnegie Mellon University (1990, "Extensions and
Applications of Higher-Order Unification") and a BA in math from the
College of Creative Studies at UC Santa Barbara. He worked at Sun
Microsystems for five years and was a graphics researcher at Microsoft
Research for eight years. Starting in October 2002, he spent a two-year
personal sabbatical, exploring mainly compassionate (nonviolent)
communication, spirit, psyche, jazz singing, and dance. See
http://conal.net for more info.
 

_______________________________________________
Colloquium mailing list
[email protected]
https://secure.engr.oregonstate.edu/mailman/listinfo/colloquium

Reply via email to