User Tools

Site Tools


benchmarks

====== Differences ====== This shows you the differences between two versions of the page.

Link to this comparison view

benchmarks [2013/03/07 17:27]
jthestness [Compiling Benchmarks]
benchmarks [2015/03/23 10:38] (current)
powerjg [Compiling Benchmarks]
Line 24: Line 24:
  
 ==== Compiling Benchmarks ==== ==== Compiling Benchmarks ====
-gem5-gpu works with cuda 3.1 and 3.2 (the recommended gcc version is 4.4). Please install this on your system before proceeding further. It may also be a good idea to install the cuda SDK, which includes the cutil library that is linked by many of the benchmarks.+gem5-gpu works with cuda 3.1 and 3.2 (the recommended gcc version is 4.4). Please install this on your system before proceeding further. You will also need to install the CUDA SDK, which includes the cutil library that is linked by many of the benchmarks. 
 + 
 +If you would like to use gem5-gpu ARM32 CPU ISA support, you will also need to obtain a cross-compiler for ARM. We have tested using arm-linux-gnueabihf-*-4.6 and arm-linux-gnueabihf-*-4.8 (gcc, g++, ld, ar), which can be obtained on Debian-based systems using: 
 + 
 +<code> 
 +[gem5-gpu/benchmarks] apt-get install gcc-4.8-arm-linux-gnueabihf-base cpp-4.8-arm-linux-gnueabihf g++-4.8-arm-linux-gnueabihf binutils-arm-linux-gnueabihf 
 +</code> 
 + 
 +Ensure that these tools can be found through your PATH variable (e.g. /usr/bin). 
  
 === Environment Variables === === Environment Variables ===
-Define the CUDAHOME environment variable, so that the makefiles know where they can find your installation of CUDA. Make sure that the CUDA executables (nvcc) are in your path. For example:+Define the CUDAHOME environment variable and the path to the NVidia CUDA SDK, so that the makefiles know where they can find your installation of CUDA. Make sure that the CUDA executables (nvcc) are in your path. For example:
  
 <code> <code>
-export CUDAHOME=/usr/local/cuda +export CUDAHOME=<path to your cuda install>/cuda 
-export PATH=$PATH:/usr/local/cuda/bin/ +export PATH=$PATH:<path to your cuda install>/bin/ 
-export NVIDIA_CUDA_SDK_LOCATION=/path/to/your/sdk/installation/C+export NVIDIA_CUDA_SDK_LOCATION=<path to your sdk installation>/C
 </code> </code>
  
 === Compile libcuda === === Compile libcuda ===
 +
 +To build libcuda for x86:
 +
 <code> <code>
-[gem5-gpu] cd libcuda +[gem5-gpu/benchmarks] cd libcuda 
-[gem5-gpu/libcuda] make+[gem5-gpu/benchmarks/libcuda] make 
 +</code> 
 + 
 +To build libcuda for ARM32 (note: Only one ISA can be compiled at a time): 
 + 
 +<code> 
 +[gem5-gpu/benchmarks] cd libcuda 
 +[gem5-gpu/benchmarks/libcuda] make ARCH=ARM32
 </code> </code>
  
  
 === Example of Compiling a Benchmark === === Example of Compiling a Benchmark ===
 +
 +To build benchmarks for x86 ISA (requires that you have the x86 libcuda built as described above):
 +
 +<code>
 +[gem5-gpu/benchmarks] cd rodinia/backprop
 +[gem5-gpu/benchmarks/rodinia/backprop] make gem5-fusion
 +</code>
 +
 +To build benchmarks for ARM ISA (requires that you have the ARM libcuda built as described above):
 +
 <code> <code>
-[gem5-gpu] cd rodinia/backprop +[gem5-gpu/benchmarks] cd rodinia/backprop 
-[gem5-gpu/rodinia/backprop] make gem5-fusion+[gem5-gpu/benchmarks/rodinia/backprop] make gem5-fusion ARCH=ARM32
 </code> </code>
  
 * Note: The "gem5-fusion" nomenclature is legacy and we intend to update it to "gem5-gpu". * Note: The "gem5-fusion" nomenclature is legacy and we intend to update it to "gem5-gpu".
  
-== Example of Compiling a Benchmark ==+== Example of Running a Benchmark ==
 Once you've [[start|built]] gem5-gpu, you can confirm that your benchmark runs. For example: Once you've [[start|built]] gem5-gpu, you can confirm that your benchmark runs. For example:
 <code> <code>
-build/VI_hammer/gem5.opt ../gem5-gpu/configs/se_fusion.py -c ../benchmarks/rodinia/nw/gem5_fusion_backprop -o "16"+build/VI_hammer/gem5.opt ../gem5-gpu/configs/se_fusion.py -c ../benchmarks/rodinia/backprop/gem5_fusion_backprop -o "16"
 </code> </code>
  
  
benchmarks.1362698859.txt.gz · Last modified: 2013/03/07 17:27 by jthestness