GPGPU Tools and Source Code Mark Harris NVIDIA Developer Technology
First: Home Base • Check the GPGPU Course website for updates! – Course notes, errata and extras http: //www. GPGPU. org/s 2004
High-Level Shading Languages • Useful New Site: Shader. Tech – http: //www. shadertech. com • Cg: C for Graphics – http: //www. nvidia. com/cg • HLSL: The D 3 D Shading Language – http: //msdn. microsoft. com/library/default. asp? url=/library/enus/directx 9_c/directx/graphics/reference/highlevellanguageshaders. asp • The Open. GL Shading Language – http: //www. 3 dlabs. com/support/developer/ogl 2/whitepapers/
GPGPU Languages • Sh University of Waterloo – http: //libsh. sourceforge. net – http: //www. cgl. uwaterloo. ca • Brook Stanford University – http: //brook. sourceforge. net – http: //graphics. stanford. edu
Shader Conversion • Babelshader – http: //graphics. stanford. edu/~danielrh/babelshader. html – Designed to convert between Direct. X HLSL output, pixelshader 2. 0 and Open. GL's low level shading languages – Allows Open. GL programs to use Microsoft's stand alone HLSL compiler, fxc. exe to compile programs into ARB or fp 30 assembly. – Enables fair benchmarking competition between the HLSL compiler and the Cg compiler on the same platform with the same demo and driver.
Debugging Tools • imdebug – The Image Debugger – http: //www. cs. unc. edu/~baxter/projects/imdebug/ – A programmer's utility to make debugging of Win 32 applications that use images and grid data easier.
Debugging Tools • Shadesmith Shader Debugger – http: //graphics. stanford. edu/projects/shadesmith • Debugger in the spirit of imdebug – Simply add a debug statement when binding shaders – Display window with scale, bias, component masking • Advanced features – Can watch any shader register contents without recompile – Shader single stepping (forward and backward), breakpointing – Shader source edit and reload without recompile
Utility Code • Render. Texture – Open Source: http: //gpgpu. sourceforge. net – – Convenience class for Open. GL “render to texture” Supports NVIDIA and ATI extensions Float pbuffers and textures supported Supports “copy to texture” (CTT) or “render to texture” (RTT) • CTT only under Linux (no RTT extension yet) – Supports render-to-depth-texture RTDT – Supports pbuffers with multiple color buffers
GPGPU. org • Your first stop for GPGPU information! • News: www. GPGPU. org • Discussion: www. GPGPU. org/forums • Developer resources, sample code, tutorials: www. GPGPU. org/developer • And for open source GPGPU software: http: //gpgpu. sourceforge. net/