A GPU implementation of David Lowe's Scale Invariant Feature Transform Changchang wu http://cs.unc.edu/~ccwu University of North Carolina at Chapel Hill 1. SIFT SIFTGPU is an implementation of SIFT for GPU. SiftGPU uses GPU to process pixels and features parallely in Gaussian pyramid construction, DoG keypoint detection and descriptor generation for SIFT. Compact feature list is efficiently build through a GPU/CPU mixed reduction. SIFTGPU is inspired by Andrea Vedaldi's sift++ and Sudipta N Sinha et al's GPU-SIFT. Many parameters of sift++ ( for example, number of octaves,number of DOG levels, edge threshold, etc) are available in SiftGPU. SIFTGPU also includes a GPU exhaustive/guided sift matcher SiftMatchGPU. It basically multiplies the descriptor matrix on GPU and find closest feature matches on GPU. GLSL/CUDA/CG implementations are all provided. NEW: The latest SIFTGPU also enables you to use Multi-GPUs and GPUS on different computers. Check doc/manual.pdf for more information. You can modify some marcros definition in SimpleSIFT.cpp and speed.cpp to enable the testing of the new functions. 2. Requirements The default implemntation uses GLSL, and it requires a GPU that has large memory and supports dynamic branching. For nVidia graphic cards, you can optionally use CG(require fp40) or CUDA implementation. You can try different implementations and to find out the fastest one for different image sizes and parameters. The GLSL version may not work on ATI now. They did compile sucessfully with ATI Catalyst 8.9, but not any more with 9.x versions. SiftGPU uses DevIl Image library, GLEW and GLUT. You'll need to make sure your system has all the dependening libraries. SiftGPU should be able to run on any operation system that supports the above libraries For windows system visual studio solution are provided as msvc/SiftGPU.dsw, msvc/SiftGPU.sln and msvc/SiftGPU_CUDA_Enabled.sln. Linux/Mac makefile is in folder Linux of the package. 3. Helps Use -help to get parameter information. Check /doc/manual.pdf for samples and explanations. In the vc workspace, there is a project called SimpleSIF that gives an example of simple SiftGPU usage. There are more examples of different ways of using SiftGPU in manual.pdf Check /doc/manual.pdf for help on the viewer.