diff options
| -rw-r--r-- | CHANGES | 14 | ||||
| -rw-r--r-- | Makefile | 8 | ||||
| -rw-r--r-- | README | 38 | ||||
| -rw-r--r-- | setup_enviroment | 8 | ||||
| -rw-r--r-- | src/cuda-sim/cuda-sim.h | 1 | ||||
| -rw-r--r-- | src/cuda-sim/ptx_ir.h | 1 | ||||
| -rw-r--r-- | src/cuda-sim/ptx_sim.h | 1 | ||||
| -rw-r--r-- | src/gpgpu-sim/dram.h | 1 | ||||
| -rw-r--r-- | src/gpgpu-sim/shader.cc | 3 |
9 files changed, 42 insertions, 33 deletions
@@ -1,5 +1,19 @@ CHANGE LOG: +Version 3.0.0b versus 2.1.2b +- massive refactoring of code to C++ (most global variables eliminated) +- support for executing native SASS code via decuda +- added to timing model: + - in order scoreboard allowing multiple instructions per warp in + pipeline at a time + - operand collector for modeling access to banked register files + - prefetching texture cache model (Igehy et al., Graphics Hardware 1998) + - updated data and constant cache models with updated MSHR model +- other changes I don't remember right now + +Version 2.1.2b versus 2.1.1b: +- TODO: fill this in! + Version 2.1.1b versus 2.1.0b: - Added support for OpenCL (requires OpenCL driver from NVIDIA) - Added performance visualizer tool @@ -28,10 +28,14 @@ # comment out next line to disable OpenGL support # export OPENGL_SUPPORT=1 - -export DEBUG?=0 export SNOW?= +ifeq ($(GPGPUSIM_CONFIG), debug) + export DEBUG=1 +else + export DEBUG=0 +endif + ifeq ($(DEBUG), 1) export SIM_LIB_DIR=lib/debug export SIM_OBJ_FILES_DIR=build/debug @@ -1,6 +1,7 @@ GPGPU-Sim Simulator version 3.0.0b (beta) -See doc/GPGPU-Sim_Manual.html for more documentation. +This version of GPGPU-Sim works with CUDA version 3.1 and some earlier +versions. It does not work with CUDA version 4.x. Please see the copyright notice in the file COPYRIGHT distributed with this release in the same directory as this file. @@ -30,17 +31,12 @@ simulation, and various configuration files to provide a programming model close to CUDA. Creating benchmarks for the original GPGPU-Sim simulator was a very time consuming process. This motivated the development an interface for directly running CUDA applications to leverage the growing number of -applications being developed to use CUDA. +applications being developed to use CUDA. We subsequently added support for +OpenCL and removed all SimpleScalar code. The interconnection network is simulated using the booksim simulator developed by Bill Dally's research group at Stanford. -The current version of GPGPU-Sim still uses a few portions of SimpleScalar -functional simulation code: support for memory spaces and command line option -processing (but not for any timing model purposes). SimpleScalar code has very -strict restrictions on non-academic use (these portions may be removed in a -future version of GPGPU-Sim). - To produce output that is compatible with the output from running the same CUDA program on the GPU, we have implemented several PTX instructions using the CUDA Math library (part of the CUDA toolkit). Code to interface with the CUDA Math @@ -56,7 +52,8 @@ version 11.1) and has been used on several other Linux platforms. Step 1: Ensure you have gcc, g++, make, makedepend, zlib, bison and flex installed on your system. For CUDA 2.x we used gcc version 4.3.2, for CUDA 1.1 -we used gcc/g++ version 4.1.3. We used bison version 2.3, and flex version 2.5.33. +we used gcc/g++ version 4.1.3. This version of GPGPU-Sim does not work with +CUDA 4.x; We used bison version 2.3, and flex version 2.5.33. Step 2: Download and install the CUDA Toolkit and CUDA SDK code samples from NVIDIA's website: <http://www.nvidia.com/cuda>. If you want to run OpenCL on @@ -78,26 +75,25 @@ From a bash shell, type the following in this directory: Step 5: Type "make" in this directory. This will build the simulator with optimizations enabled so the simulator runs faster. If you want to run the -simulator in gdb to debug it, then build it using "make DEBUG=1" instead. +simulator in gdb to debug it, then uncomment the line + + #export GPGPUSIM_CONFIG=debug + +in setup_environment and type ". setup_environment" again, then "make" again. Step 6: Run a CUDA built with a recent version of CUDA (or an OpenCL application) and the device code should now run on the simulator instead of your graphics card. To be able to run the application on your graphics card -again, remove $GPGPUSIM_ROOT/lib from your LD_LIBRARY_PATH. There is also a -"static" build setup used for some of the examples in the benchmarks directory -(more information on this is available in doc/GPGPU-Sim_Manual.html) - -By default, this version of GPGPU-Sim uses the ptx source embedded within the -binary. To use the .ptx files in the current directory, type: - - export PTX_SIM_USE_PTX_FILE=1 +again, remove $GPGPUSIM_ROOT/lib from your LD_LIBRARY_PATH. Note that for OpenCL applications the NVIDIA driver is required to convert -OpenCL ".cl" files to PTX. The resulting PTX can be saved to disk by adding +OpenCL ".cl" files to PTX (this in turn may require you have a graphics card, +but to run CUDA applications on the simulator a graphics card is not +necessary). The resulting PTX can be saved to disk by adding -save_embedded_ptx to your gpgpusim.config file (embedded PTX files with be saved as _0.ptx, _1.ptx, etc...). 3. USING THE SIMULATOR -For guidelines on using and configuring the simulator, please see -doc/GPGPU-Sim_Manual.html +Note that doc/GPGPU-Sim_Manual.html has not yet been updated to reflect +changes to GPGPU-Sim versus the earlier 2.x versions. diff --git a/setup_enviroment b/setup_enviroment index 2cd8a9c..73fb7c1 100644 --- a/setup_enviroment +++ b/setup_enviroment @@ -1,5 +1,5 @@ -#export GPGPUSIM_CONFIG=release -export GPGPUSIM_CONFIG=debug +export GPGPUSIM_CONFIG=release +#export GPGPUSIM_CONFIG=debug SIMSUBDIR=fermi @@ -11,8 +11,8 @@ export BOOST_LIB=/usr/lib64 export BOOST_VER= export NVOPENCL_LIBDIR=/usr/lib64 -export CUDA_INSTALL_PATH=$HOME/nvcuda/4.0/cuda -export CUDAHOME=$HOME/nvcuda/4.0/cuda +export CUDA_INSTALL_PATH=$HOME/nvcuda/3.1/cuda +export CUDAHOME=$HOME/nvcuda/3.1/cuda export NVIDIA_COMPUTE_SDK_LOCATION=$HOME/NVIDIA_GPU_Computing_SDK/ export NVIDIA_CUDA_SDK_LOCATION=$NVIDIA_COMPUTE_SDK_LOCATION/ export LD_LIBRARY_PATH=$GPGPUSIM_ROOT/lib/$GPGPUSIM_CONFIG:$LD_LIBRARY_PATH diff --git a/src/cuda-sim/cuda-sim.h b/src/cuda-sim/cuda-sim.h index adc526e..e911c62 100644 --- a/src/cuda-sim/cuda-sim.h +++ b/src/cuda-sim/cuda-sim.h @@ -29,7 +29,6 @@ #define CUDASIM_H_INCLUDED #include "../abstract_hardware_model.h" -#include "dram_callback.h" #include <stdlib.h> #include <map> #include <string> diff --git a/src/cuda-sim/ptx_ir.h b/src/cuda-sim/ptx_ir.h index 2485f68..c7eb499 100644 --- a/src/cuda-sim/ptx_ir.h +++ b/src/cuda-sim/ptx_ir.h @@ -40,7 +40,6 @@ #include "ptx.tab.h" #include "ptx_sim.h" -#include "dram_callback.h" #include "memory.h" diff --git a/src/cuda-sim/ptx_sim.h b/src/cuda-sim/ptx_sim.h index cc6e43c..8ce8abc 100644 --- a/src/cuda-sim/ptx_sim.h +++ b/src/cuda-sim/ptx_sim.h @@ -29,7 +29,6 @@ #include <stdlib.h> -#include "dram_callback.h" #include "../abstract_hardware_model.h" #include "../tr1_hash_map.h" diff --git a/src/gpgpu-sim/dram.h b/src/gpgpu-sim/dram.h index f9e5247..4cbcbb3 100644 --- a/src/gpgpu-sim/dram.h +++ b/src/gpgpu-sim/dram.h @@ -30,7 +30,6 @@ #define DRAM_H #include "delayqueue.h" -#include "../cuda-sim/dram_callback.h" #include <set> #include <zlib.h> #include <stdio.h> diff --git a/src/gpgpu-sim/shader.cc b/src/gpgpu-sim/shader.cc index 5715f04..ceb67cb 100644 --- a/src/gpgpu-sim/shader.cc +++ b/src/gpgpu-sim/shader.cc @@ -35,7 +35,6 @@ #include "gpu-misc.h" #include "../cuda-sim/ptx_sim.h" #include "../cuda-sim/ptx-stats.h" -#include "../cuda-sim/dram_callback.h" #include "../cuda-sim/cuda-sim.h" #include "gpu-sim.h" #include "mem_fetch.h" @@ -866,7 +865,7 @@ mem_stage_stall_type ldst_unit::process_memory_access_queue( cache_t *cache, war if( inst.accessq_empty() ) return result; - const mem_access_t &access = inst.accessq_back(); + //const mem_access_t &access = inst.accessq_back(); mem_fetch *mf = m_mf_allocator->alloc(inst,inst.accessq_back()); std::list<cache_event> events; enum cache_request_status status = cache->access(mf->get_addr(),mf,gpu_sim_cycle+gpu_tot_sim_cycle,events); |
