summaryrefslogtreecommitdiff
path: root/benchmarks/OpenCL/README
blob: 1fa6cee375f6c648f55b15ec082616d660131c4e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
To run OpenCL applications on GPGPU-Sim, do the following:

1. Build the OpenCL application as you would to run it on an NVIDIA GPU.
2. Set GPGPUSIM_ROOT to the top level of your GPGPU-Sim installation.
3. Set NVOPENCL_LIBDIR to the location of libOpenCL.so distributed by NVIDIA
   (usually /usr/lib or /usr/lib64)
4. Run make in the top level GPGPU-Sim directory (after step 3)
5. Ensure GPGPUSIM_ROOT/lib is before /usr/lib and /usr/lib64 in your 
   LD_LIBRARY_PATH
6. Copy appropriate gpgpusim.config and interconnect configuration files 
   to the directory you will run the OpenCL application in.
7. Run the OpenCL application as built in step 1.

The following NVIDIA Compute SDK 2.3a OpenCL applications have been tested 
(using reduced input sets):

oclBandwidthTest
oclBlackScholes
oclReduction
oclDCT8x8
oclDotProduct
oclHistogram
oclMersenneTwister
oclMatrixMul
oclMatVecMul 
oclSortingNetworks
oclTranspose
oclVectorAdd
oclConvolutionSeparable
oclQuasirandomGenerator
oclParticles (w/ -qatest)

The LLVM based PTX compiler in the current OpenCL enabled NVIDIA driver
(190.29) will occassionally move code in such a way that a barrier becomes
control dependent upon a branch that can diverge, leading to a deadlock. This
has been observed for oclScan and oclRadixSort.  

The following are known to not work currently:

oclRadixSort		: barrier control dependence deadlock 
oclScan			: barrier control dependence deadlock

The other benchmarks have not been tested, or not tested to completion.