Skip to content

Commit d6fd64f

Browse files
committed
Merge branch '1.1.0-prerelease' into release
2 parents 2676c08 + 55a7932 commit d6fd64f

36 files changed

Lines changed: 1767 additions & 2555 deletions

Jenkinsfile

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,26 +16,29 @@ pipeline {
1616
}
1717
stage('accel-sim-build'){
1818
steps{
19-
sh '''#!/bin/bash
19+
sh '''#!/bin/bash -xe
2020
source ./env-setup/11.0_env_setup.sh
2121
rm -rf ./gpu-simulator/gpgpu-sim
2222
source ./gpu-simulator/setup_environment.sh
23+
make -j -C gpu-simulator
24+
make clean -C gpu-simulator
2325
make -j -C gpu-simulator'''
2426
}
2527
}
2628
stage('rodinia_2.0-ft'){
2729
steps{
2830
parallel "sass": {
29-
sh '''#!/bin/bash
31+
sh '''#!/bin/bash -xe
3032
source ./env-setup/11.0_env_setup.sh
3133
source ./gpu-simulator/setup_environment.sh
3234
./util/job_launching/run_simulations.py -B rodinia_2.0-ft -C QV100-SASS -T ~/../common/accel-sim/traces/tesla-v100/latest/rodinia_2.0-ft/9.1/ -N rodinia_2.0-ft-sass-$$
3335
./util/job_launching/monitor_func_test.py -I -v -s rodinia-stats-per-app-sass.csv -N rodinia_2.0-ft-sass-$$'''
3436
}, "ptx": {
35-
sh '''#!/bin/bash
37+
sh '''#!/bin/bash -xe
3638
source ./env-setup/11.0_env_setup.sh
3739
source ./gpu-simulator/setup_environment.sh
3840
41+
rm -rf ./gpu-app-collection
3942
git clone git@github.com:accel-sim/gpu-app-collection.git
4043
source ./gpu-app-collection/src/setup_environment
4144
make rodinia_2.0-ft -j -C ./gpu-app-collection/src

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,12 @@ the apps in from this collection as well as just on your own, with your own apps
112112
./util/job_launching/get_stats.py -N myTest | tee stats.csv
113113
```
114114
115+
If you want to run the accel-sim.out executable command itself for specific workload, you can use:
116+
```bash
117+
/gpu-simulator/bin/release/accel-sim.out -trace ./hw_run/rodinia_2.0-ft/9.1/backprop-rodinia-2.0-ft/4096___data_result_4096_txt/traces/kernelslist.g -config ./gpu-simulator/gpgpu-sim/configs/tested-cfgs/SM7_QV100/gpgpusim.config -config ./gpu-simulator/configs/tested-cfgs/SM7_QV100/trace.config
118+
```
119+
However, we encourage you to use our workload launch manager 'run_simulations' script as shown above, which will greatly simplify the simulation process and increase productivity.
120+
115121
To understand what is going on and how to just run the simulator in isolation without the framework, read [this](https://github.com/accel-sim/accel-sim-framework/tree/dev/util/job_launching/README.md).
116122
117123
3. **Accel-Sim Correlator**: A tool that matches, plots and correlates statistics from the performance model with real hardware statistics generated by profiling tools. To use the correlator, you must first generate hardware output and simulation statistics. To generate output from the GPU, use the scripts in [./util/hw_stats](./util/hw_stats).

get-accel-sim-traces.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import sys
88
from subprocess import Popen, STDOUT
99

10+
VERSION = "1.1.0"
1011
WEB_DIRECTORY = "ftp://ftp.ecn.purdue.edu/tgrogers/accel-sim/traces/"
1112
this_directory = os.path.dirname(os.path.realpath(__file__)) + "/"
1213

@@ -60,7 +61,7 @@ def getTotalUncompressed(self):
6061
return total
6162

6263
def downloadTrace(cardName, suiteName):
63-
webFile = os.path.join(WEB_DIRECTORY, cardName, "latest", suiteName + ".tgz")
64+
webFile = os.path.join(WEB_DIRECTORY, cardName, VERSION + ".latest", suiteName + ".tgz")
6465
print "\n\nDownloading {0}".format(webFile)
6566
wget = Popen(["wget " + webFile], stderr=STDOUT, shell=True)
6667
wget.communicate()
@@ -79,17 +80,17 @@ def main():
7980
os.makedirs(hw_run_dir)
8081
os.chdir(hw_run_dir)
8182
# Parse the trace summary
82-
trace_summary = os.path.join(hw_run_dir, "trace.summary.txt")
83+
trace_summary = os.path.join(hw_run_dir, VERSION + ".trace.summary.txt")
8384
try:
8485
os.remove(trace_summary)
8586
except OSError:
8687
pass
8788

8889
Popen(["wget " + " " +
89-
WEB_DIRECTORY + "trace.summary.txt" ],
90+
WEB_DIRECTORY + VERSION + ".trace.summary.txt" ],
9091
stderr=STDOUT, shell=True).communicate()
9192

92-
lineFormat = re.compile(r"(.*)\t(.*)/latest/(.*)")
93+
lineFormat = re.compile(r"(.*)\t(.*)/" + VERSION + ".latest/(.*)")
9394
sizeDict = {}
9495
for line in open(trace_summary):
9596
lineMatch = lineFormat.match(line)

gpu-simulator/trace-driven/ISA_Def/kepler_opcode.h renamed to gpu-simulator/ISA_Def/kepler_opcode.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
#include <unordered_map>
1111

1212
#define KEPLER_BINART_VERSION 35
13-
#define KEPLER_SHARED_MEMORY_VIRTIAL_ADDRESS_START 0x00007f2c60000000
1413

1514
// TO DO: moving this to a yml or def files
1615

gpu-simulator/trace-driven/ISA_Def/pascal_opcode.h renamed to gpu-simulator/ISA_Def/pascal_opcode.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@
1212
#define PASCAL_TITANX_BINART_VERSION 61
1313
#define PASCAL_P100_BINART_VERSION 60
1414

15-
#define PASCAL_SHARED_MEMORY_VIRTIAL_ADDRESS_START 0x00007f2c60000000
16-
1715
// TO DO: moving this to a yml or def files
1816

1917
/// Pascal SM_61 ISA
File renamed without changes.

gpu-simulator/trace-driven/ISA_Def/turing_opcode.h renamed to gpu-simulator/ISA_Def/turing_opcode.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
#include <unordered_map>
1111

1212
#define TURING_BINART_VERSION 75
13-
#define TURING_SHARED_MEMORY_VIRTIAL_ADDRESS_START 0x00007f2c60000000
1413

1514
// TO DO: moving this to a yml or def files
1615

gpu-simulator/trace-driven/ISA_Def/volta_opcode.h renamed to gpu-simulator/ISA_Def/volta_opcode.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
#include <unordered_map>
1111

1212
#define VOLTA_BINART_VERSION 70
13-
#define VOLTA_SHARED_MEMORY_VIRTIAL_ADDRESS_START 0x00007f2c60000000
1413

1514
// TO DO: moving this to a yml or def files
1615

gpu-simulator/Makefile

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,9 @@ else
3737
endif
3838

3939
ifeq ($(DEBUG),1)
40-
CXXFLAGS = -Wall -O0 -g3 -fPIC
40+
CXXFLAGS = -Wall -O0 -g3 -fPIC -std=c++11
4141
else
42-
CXXFLAGS = -Wall -O3 -g3 -fPIC
42+
CXXFLAGS = -Wall -O3 -g3 -fPIC -std=c++11
4343
endif
4444

4545
all: $(BIN_DIR)/accel-sim.out
@@ -59,11 +59,11 @@ checkenv: makedirs
5959
exit 1; \
6060
fi
6161

62-
$(BIN_DIR)/accel-sim.out: trace-driven gpgpu-sim makedirs $(BUILD_DIR)/main.o version
62+
$(BIN_DIR)/accel-sim.out: trace-driven trace-parser gpgpu-sim makedirs $(BUILD_DIR)/main.o version
6363
$(CXX) -std=c++0x -o $(BIN_DIR)/accel-sim.out -L$(GPGPUSIM_ROOT)/lib/$(GPGPUSIM_CONFIG)/ -lcudart -lm -lz -lGL -pthread $(BUILD_DIR)/*.o
6464

6565
$(BUILD_DIR)/main.o: main.cc version
66-
$(CXX) $(CXXFLAGS) -I$(BUILD_DIR) -I./trace-driven -I$(GPGPUSIM_ROOT)/libcuda -I$(GPGPUSIM_ROOT)/src -I$(CUDA_INSTALL_PATH)/include -c main.cc -o $(BUILD_DIR)/main.o
66+
$(CXX) $(CXXFLAGS) -I$(BUILD_DIR) -I./trace-driven -I./trace-parser -I$(GPGPUSIM_ROOT)/libcuda -I$(GPGPUSIM_ROOT)/src -I$(CUDA_INSTALL_PATH)/include -c main.cc -o $(BUILD_DIR)/main.o
6767

6868
version:
6969
echo "const char *g_accelsim_version=\"$(ACCELSIM_BUILD)\";" > $(BUILD_DIR)/accelsim_version.h
@@ -76,6 +76,10 @@ trace-driven: checkenv makedirs
7676
$(MAKE) -C trace-driven depend
7777
$(MAKE) -C trace-driven
7878

79+
trace-parser: checkenv makedirs
80+
$(MAKE) -C trace-parser depend
81+
$(MAKE) -C trace-parser
82+
7983
clean:
8084
rm -rf $(BIN_DIR)
8185
rm -rf $(BUILD_DIR)

gpu-simulator/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22

33
![Accel-Sim Class Overview](https://accel-sim.github.io/assets/img/accel-sim-class.png)
44

5-
The Accel-Sim's performance model relies on GPGPU-Sim 4.0 Performance mopdel. We created new classes with "exec_" and "trace_" prefix that are inherited from gpgpu-sim performance model classes, then we moved some function implementations from the performance model to the new inherited classes using virtual functions. These functions are the ones that differ from exec-driven mode versus trace-driven mode. For example, when gpgpu-sim call the function "get_next_inst()", the exec_shader_core_ctx implementation will get the next instruction from the functional model, whereas the trace_shader_core_ctx will get the next inst from the traces.
5+
The Accel-Sim's performance model relies on GPGPU-Sim 4.0 performance model. We created new classes with "exec_" and "trace_" prefix that are inherited from gpgpu-sim performance model classes, then we moved some function implementations from the performance model to the new inherited classes using virtual functions. These functions are the ones that differ from exec-driven mode versus trace-driven mode. For example, when gpgpu-sim call the function "get_next_inst()", the exec_shader_core_ctx implementation will get the next instruction from the functional model, whereas the trace_shader_core_ctx will get the next inst from the traces.
66
The blue blocks in the image are maintained in GPGPU-Sim 4.0 repo [here](https://github.com/gpgpu-sim/gpgpu-sim_distribution), whereas the green blocks are maintained by accel-sim in this repo.
77

8-
For each new GPU generation, we have to crease ISA_def file that specifies the SASS instructions. For now, we have created the ISA_def files for NVIDIA's Kepler, Pascal, Turing and Volta generations. Please see the directory [./trace-driven/ISA_Def](./trace-driven/ISA_Def).
8+
For each new GPU generation, we have to crease ISA_def file that specifies the SASS instructions. For now, we have created the ISA_def files for NVIDIA's Kepler, Pascal, Turing and Volta generations. Please see the directory [./ISA_Def](./ISA_Def).
99
We were able to generate these files using the NVIDIA's CUDA Binary Utilities documentation from [here](https://docs.nvidia.com/cuda/cuda-binary-utilities/index.html#instruction-set-ref).
1010

11-
For more info on the Accel-Sim front-end and how to compile, please see "Accel-Sim SASS Frontend" entry in the main read-me page [here](https://github.com/accel-sim/accel-sim-framework/blob/dev/README.md).
11+
You do not need to clone the GPGPU-Sim 4.0 by your self. The [./setup_environment.sh](./setup_environment.sh) will clone the recent GPGPU-Sim model and integrate it with Accel-Sim. For more info on the Accel-Sim front-end and how to compile, please see "Accel-Sim SASS Frontend" entry in the main read-me page [here](https://github.com/accel-sim/accel-sim-framework/blob/dev/README.md).

0 commit comments

Comments
 (0)