Install and Run ISPASS2009-benchmarks on GPGPU-Sim

Jan 10, 2019


ISPASS2009-Benchmarks are used in the ISPASS 2009 paper on GPGPU-Sim for evaluation. The benchmark suite includes 11 benchmarks, i.e., AES, BFS, CP, LPS, LIB, MUM, NN, NQU, RAY, STO, and WP. Please do the following steps to install and run ISPASS2009 Benchmarks.

1 Build the NVIDIA CUDA SDK benchmarks

1) Install NVIDIA driver if have no one:

apt-get install nvidia-340

There may be some errors during the installing. That is all right.

2) We have installed the NVIDIA CUDA SDK benchmarks (i.e., GPU Computing SDK code samples) when installing GPGPU-Sim. We now build it:

cd ~/NVIDIA_GPU_Computing_SDK
make

During the building, if the error /usr/bin/ld: cannot find -lOpenCL collect2: ld returned 1 exit status ../../common/common_opencl.mk:254: recipe for target '../../..//OpenCL//bin//linux/release/oclPostprocessGL' failed occurs, make the following modifications:

     (a) Edit ./C/common/common.mk, lines like LIB += … ${OPENGLLIB} …. $(RENDERCHECKGLLIB) … should have $(RENDERCHECKGLLIB) moved before ${OPENGLLIB}. There are 3 lines like this.

LIB += $(RENDERCHECKGLLIB) ${OPENGLLIB} $(PARAMGLLIB) $(CUDPPLIB) ${LIB} -ldl -rdynamic
LIB += -lcuda   $(RENDERCHECKGLLIB) ${OPENGLLIB} $(PARAMGLLIB) $(CUDPPLIB) ${LIB}
LIB += $(RENDERCHECKGLLIB) ${OPENGLLIB} $(PARAMGLLIB) $(CUDPPLIB) ${LIB}

     (b) Similarly, edit ./CUDALibraries/common/common.mk

     (c) cd ~/NVIDIA_GPU_Computing_SDK

     (d) Edit Makefile. Comment all lines with CUDALibraries and OpenCL as we only want the application binaries. You comment by placing # in the front of the line.

# GPU Computing SDK Version 4.0.8
all:
    @$(MAKE) -C ./shared
    @$(MAKE) -C ./C
    #@$(MAKE) -C ./CUDALibraries
    #@$(MAKE) -C ./OpenCL

clean:
    @$(MAKE) -C ./shared clean
    @$(MAKE) -C ./C clean
    #@$(MAKE) -C ./CUDALibraries clean
    #@$(MAKE) -C ./OpenCL clean

clobber:
    @$(MAKE) -C ./shared clobber
    @$(MAKE) -C ./C clobber
    #@$(MAKE) -C ./CUDALibraries clobber
    #@$(MAKE) -C ./OpenCL clobber

     (e) make

The NVIDIA CUDA SDK benchmarks have been installed by now. All executed files are listed in the fold ~/NVIDIA_GPU_Computing_SDK/C/bin/linux/release/.

3) Test GPGPU-Sim using one of NVIDIA CUDA SDK benchmarks

cd /home/gpgpu-sim_distribution/test
~/NVIDIA_GPU_Computing_SDK/C/bin/linux/release/

2 Build the ISPASS2009-Benchmarks

1) Download ISPASS2009-Benchmarks

cd /home/gpgpu-sim_distribution
git clone https://github.com/gpgpu-sim/ispass2009-benchmarks.git
cd ispass2009-benchmarks/

2) Define the following environment variables at the top of Makefile.ispass-2009:

export CUDA_INSTALL_PATH=/usr/local/cuda
NVIDIA_COMPUTE_SDK_LOCATION=/root/NVIDIA_GPU_Computing_SDK

3) Comment some benchmarks that fail to be built, e.g., AES, DG, and WP, in Makefile.ispass-2009:

#$(SETENV) make noinline=$(noinline) -C AES
#$(SETENV) make noinline=$(noinline) -C DG/3rdParty/ParMetis-3.1
#$(SETENV) make noinline=$(noinline) -C DG
#$(SETENV) make noinline=$(noinline) -C WP

4) Build the benchmarks

"make -f Makefile.ispass-2009

The binaries generated are in the ./bin/release/ fold.

5) Source setup_environment and Place a link to the GPU configuration files:

cd /home/gpgpu-sim_distribution
source setup_environment 
cd ispass2009-benchmarks/
./setup_config.sh GTX480

You can also change the GPU type (e.g., to TeslaC2050) by the following instructions:

./setup_config.sh --cleanup
./setup_config.sh TeslaC2050

6) Run a benchmark such as NN:

cd NN/
sh README.GPGPU-Sim