Statistics
| Branch: | Revision:

root / rgbdslam / external / siftgpu / Notes On CUDA.txt @ 9240aaa3

History | View | Annotate | Download (2.41 KB)

1
---------------------------------------------------------------------------------
2
1. How to enable CUDA
3

    
4
The CUDA implementation in the package is not compiled by default.
5

    
6
To enable it for visual stuio 2005, use vc/SiftGPU_CUDA_Enabled.sln
7
To enable it for other OS, you need to change siftgpu_enable_cuda to 1 in the makefile
8

    
9

    
10
---------------------------------------------------------------------------------
11
2. Change CUDA build parameters.
12
For windows, you need to change the settings in the custom build command line of 
13
ProgramCU.cu. For example, add -use_fast_match for using fast match. 
14

    
15
For Other OS, you need to change the makefile. The top part of the makefile is 
16
the configuration section, which includes: 
17
	siftgpu_enable_cuda = 0             (Set 1 to enable CUDA-based SiftGPU)
18
	CUDA_INSTALL_PATH = /usr/local/cuda (Where to find CUDA)
19
	siftgpu_cuda_options = -arch sm_10  (Additional CUDA Compiling options)
20

    
21
	
22
------------------------------------------------------------------------------------
23
3. CUDA runtime parameters for SiftGPU::ParseParam
24
First, you need to specify "-cuda" to use CUDA-based SiftGPU. More parameters can 
25
be chagned at runtime in CUDA-based SiftGPU than in OpenGL-based version. Check out
26
the manual for details. 
27

    
28
NEW. You can choose GPU for CUDA computation by using "-cuda [device_index=0]"
29

    
30
One parameter for CUDA is "-di", which controls whether dynamic indexing is used
31
in descriptor generations. It is turned off by default. My experiments on 8800 
32
GTX show that unrolled loop of 8 if-assigns are faster than dynamic indexing, but
33
it might be different on other GPUs.
34

    
35

    
36
--------------------------------------------------------------------------------------
37
4. Speed of CUDA-based SiftGPU
38
If the size of the first octave (multiply the original size by 2 if upsample is used)
39
is less than or around 1024x768, CUDA version will be faster than OpenGL versions, 
40
otherwise the OpenGL versions are still faster. 
41

    
42
**************************************************************************************
43
This is observed on nVidia 8800 GTX, it might be different on other GPUs. Recent
44
experiments on GTX280 show that CUDA version is not as fast as OpenGL version. 
45

    
46
Note: the thread block settings are currently tuned on GPU nVidia GTX 8800, 
47
       which may not be optimized for other GPUs.
48
**************************************************************************************