Tutorials and Guides
Getting started with CUDA programming
CUDA VS2005 Template
Using the template
CUDA programming intro
CUDA Programming Course Homepage (Slides, Syllabus, mp3s)
NVIDIA GPU Programming Guide
GPU Gems
CUDA Performance Related
CUDA optimization, in particular parallel sum reduction
Program Optimization Study on a 128-Core GPU
General CUDA performance (also specifies float precision and IEEE compliance)
GPGPU Application Papers
Database joins
Accelerating F# Meta-programming
CUDA Compatible GPU as an efficient hardware accelerator for AES cryptography
A performance study of general-purpose applications on graphics processors
Mars: A MapReduce Framework on Graphics Processors
Topics Where GPGPU Might Also Be Applied
CoreCalc - Spreadsheet programming
Existing Libraries and Other Code Resources
CUDPP: CUDA Parallel Primitives Library
ACES: Advanced CUDA Encryption Standard (AES implementation - in development)
GPUlib
CUDA.NET
GPU++ - An Embedded GPU Development System for General-Purpose Computations (C++)
Brahma - LINQ to shader language
Implementation Details
Increasing performance by using constants (forum question)
There are a large number of technologies which are more or less related to the subject. They include old and new technologies and APIs for using GPUs for computation. The subjects are accompanied by external links and, where available, links to a more thorough analysis of the technology elsewhere on this wiki.
Ati's CTM (Close to Metal)
http://en.wikipedia.org/wiki/Close_to_Metal
Replaced by AMD Stream SDK (also see CAL)
Apple's OpenCL (Open Compute Language)
http://en.wikipedia.org/wiki/OpenCL
NVIDIA's CUDA (Compute Unified Device Architecture)
http://en.wikipedia.org/wiki/CUDA
Microsoft's Accelerator
http://channel9.msdn.com/wiki/accelerator/homepage/
Brook+
http://ati.amd.com/technology/streamcomputing/AMD-Brookplus.pdf
Sh (A meta-programming language for GPUs)
http://libsh.org/
C$ (C bucks) programming language
http://www.codeplex.com/cbucks
RapidMind platform
http://www.rapidmind.net/
FireStream
http://en.wikipedia.org/wiki/AMD_FireStream
Intel's Ct
http://techresearch.intel.com/articles/Tera-Scale/1514.htm
In the future:
Intel's Larrabee processor
http://en.wikipedia.org/wiki/Intel_Larrabee
DirectX 11
http://www.shacknews.com/onearticle.x/53810
http://www.hol.dk/nyheder.aspx?nid=9950
http://www.tomshardware.co.uk/opengl-directx,review-31330.html
Tim Sweeney: OpenGL and DirectX soon obsolete
http://arstechnica.com/articles/paedia/gpu-sweeney-interview.ars/1
Libraries:
BrookGPU, a GPGPU library from Stanford University for the C programming language
http://en.wikipedia.org/wiki/BrookGPU
Lib Sh, a GPGPU library for C++
http://en.wikipedia.org/wiki/Lib_Sh
.NET Parallel Computing Extensions
http://msdn.microsoft.com/en-us/concurrency/default.aspx
http://www.hanselman.com
Concepts of interest:
Stream programming
http://en.wikipedia.org/wiki/Stream_programming
Terms to check out:
SPMD, or single program multiple data.
http://en.wikipedia.org/wiki/SPMD
Articles of interest:
Radeon 4870 review and architecture overview
http://www.anandtech.com/video/showdoc.aspx?i=3341&p=1
CUDA overview and introduction
http://www.tomshardware.com/reviews/nvidia-cuda-gpu,1954.html
OpenGL 3 vs DirectX11
http://www.tomshardware.co.uk/opengl-directx,review-31330.html
Differences between AES and Rijndael
http://csrc.nist.gov/archive/aes/rijndael/Rijndael-ammended.pdf





