summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorTayler Hetherington <[email protected]>2012-11-30 21:29:42 -0800
committerAndrew Boktor <[email protected]>2014-08-14 13:49:22 -0700
commit36ce0f2243fd0723a746b3c2f5f0651577312400 (patch)
treee79475e75f800ad34b4851ea710c4ee409f5bd72 /Makefile
parent08ec3343d0bca75e63e130266f75f8242f22050b (diff)
Merging Power model into Fermi
//depot/gpgpu_sim_research/fermi_power/distribution/... to //depot/gpgpu_sim_research/fermi/distribution/... [git-p4: depot-paths = "//depot/gpgpu_sim_research/fermi/distribution/": change = 14723]
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile65
1 files changed, 60 insertions, 5 deletions
diff --git a/Makefile b/Makefile
index f5e676b..e92f498 100644
--- a/Makefile
+++ b/Makefile
@@ -48,12 +48,13 @@ ifneq ($(shell which nvcc), "")
endif
endif
-LIBS = cuda-sim gpgpu-sim_uarch intersim gpgpusimlib
+LIBS = cuda-sim gpgpu-sim_uarch intersim gpgpusimlib
+
TARGETS =
ifeq ($(shell uname),Linux)
TARGETS += $(SIM_LIB_DIR)/libcudart.so
-else
+else # MAC
TARGETS += $(SIM_LIB_DIR)/libcudart.dylib
endif
@@ -66,8 +67,26 @@ else
endif
TARGETS += cuobjdump_to_ptxplus/cuobjdump_to_ptxplus
-.PHONY: check_setup_environment
-gpgpusim: check_setup_environment makedirs $(TARGETS)
+MCPAT=
+MCPAT_OBJ_DIR=
+MCPAT_DBG_FLAG=
+ifneq ($(GPGPUSIM_POWER_MODEL),)
+ LIBS += mcpat
+
+
+ ifeq ($(DEBUG), 1)
+ MCPAT_OBJ_DIR = $(GPGPUSIM_POWER_MODEL)/obj_dbg
+ MCPAT_DBG_FLAG = dbg
+ else
+ MCPAT_OBJ_DIR = $(GPGPUSIM_POWER_MODEL)/obj_opt
+ endif
+
+ MCPAT = $(MCPAT_OBJ_DIR)/*.o
+endif
+
+
+.PHONY: check_setup_environment check_power
+gpgpusim: check_setup_environment check_power makedirs $(TARGETS)
check_setup_environment:
@@ -87,7 +106,30 @@ check_setup_environment:
echo; echo " Building GPGPU-Sim version $(GPGPUSIM_VERSION) (build $(GPGPUSIM_BUILD)) with CUDA version $(CUDA_VERSION_STRING)"; echo; \
true; \
fi \
- fi
+ fi
+
+check_power:
+ @if [ -d "$(GPGPUSIM_ROOT)/src/mcpat/" -a ! -n "$(GPGPUSIM_POWER_MODEL)" ]; then \
+ echo ""; \
+ echo " Power model detected in default directory ($(GPGPUSIM_ROOT)/src/mcpat) but GPGPUSIM_POWER_MODEL not set."; \
+ echo " Please re-run setup_environment or manually set GPGPUSIM_POWER_MODEL to the mcpat directory if you would like to include the GPGPU-Sim Power Model."; \
+ echo ""; \
+ true; \
+ elif [ ! -d "$(GPGPUSIM_POWER_MODEL)" ]; then \
+ echo ""; \
+ echo "ERROR ** Power model directory invalid."; \
+ echo "($(GPGPUSIM_POWER_MODEL)) is not a valid directory."; \
+ echo "Please set GPGPUSIM_POWER_MODEL to the GPGPU-Sim mcpat directory."; \
+ echo ""; \
+ exit 101; \
+ elif [ -n "$(GPGPUSIM_POWER_MODEL)" -a ! -f "$(GPGPUSIM_POWER_MODEL)/gpgpu_sim.verify" ]; then \
+ echo ""; \
+ echo "ERROR ** Power model directory invalid."; \
+ echo "gpgpu_sim.verify not found in $(GPGPUSIM_POWER_MODEL)."; \
+ echo "Please ensure that GPGPUSIM_POWER_MODEL points to a valid mcpat directory and that you have the correct GPGPU-Sim mcpat distribution."; \
+ echo ""; \
+ exit 102; \
+ fi
no_opencl_support:
@echo "Warning: gpgpu-sim is building without opencl support. Make sure NVOPENCL_LIBDIR and NVOPENCL_INCDIR are set"
@@ -100,6 +142,7 @@ $(SIM_LIB_DIR)/libcudart.so: $(LIBS) cudalib
$(SIM_OBJ_FILES_DIR)/gpgpu-sim/*.o \
$(SIM_OBJ_FILES_DIR)/intersim/*.o \
$(SIM_OBJ_FILES_DIR)/*.o -lm -lz -lGL -pthread \
+ $(MCPAT) \
-o $(SIM_LIB_DIR)/libcudart.so
if [ ! -f $(SIM_LIB_DIR)/libcudart.so.2 ]; then ln -s libcudart.so $(SIM_LIB_DIR)/libcudart.so.2; fi
if [ ! -f $(SIM_LIB_DIR)/libcudart.so.3 ]; then ln -s libcudart.so $(SIM_LIB_DIR)/libcudart.so.3; fi
@@ -113,6 +156,7 @@ $(SIM_LIB_DIR)/libcudart.dylib: $(LIBS) cudalib
$(SIM_OBJ_FILES_DIR)/gpgpu-sim/*.o \
$(SIM_OBJ_FILES_DIR)/intersim/*.o \
$(SIM_OBJ_FILES_DIR)/*.o -lm -lz -pthread \
+ $(MCPAT) \
-o $(SIM_LIB_DIR)/libcudart.dylib
$(SIM_LIB_DIR)/libOpenCL.so: $(LIBS) opencllib
@@ -123,6 +167,7 @@ $(SIM_LIB_DIR)/libOpenCL.so: $(LIBS) opencllib
$(SIM_OBJ_FILES_DIR)/gpgpu-sim/*.o \
$(SIM_OBJ_FILES_DIR)/intersim/*.o \
$(SIM_OBJ_FILES_DIR)/*.o -lm -lz -lGL -pthread \
+ $(MCPAT) \
-o $(SIM_LIB_DIR)/libOpenCL.so
if [ ! -f $(SIM_LIB_DIR)/libOpenCL.so.1 ]; then ln -s libOpenCL.so $(SIM_LIB_DIR)/libOpenCL.so.1; fi
if [ ! -f $(SIM_LIB_DIR)/libOpenCL.so.1.1 ]; then ln -s libOpenCL.so $(SIM_LIB_DIR)/libOpenCL.so.1.1; fi
@@ -131,6 +176,12 @@ cudalib: cuda-sim
$(MAKE) -C ./libcuda/ depend
$(MAKE) -C ./libcuda/
+ifneq ($(GPGPUSIM_POWER_MODEL),)
+mcpat:
+ $(MAKE) -C $(GPGPUSIM_POWER_MODEL) depend
+ $(MAKE) -C $(GPGPUSIM_POWER_MODEL) $(MCPAT_DBG_FLAG)
+endif
+
cuda-sim:
$(MAKE) -C ./src/cuda-sim/ depend
$(MAKE) -C ./src/cuda-sim/
@@ -164,6 +215,7 @@ makedirs:
if [ ! -d $(SIM_OBJ_FILES_DIR)/libopencl ]; then mkdir -p $(SIM_OBJ_FILES_DIR)/libopencl; fi;
if [ ! -d $(SIM_OBJ_FILES_DIR)/intersim ]; then mkdir -p $(SIM_OBJ_FILES_DIR)/intersim; fi;
if [ ! -d $(SIM_OBJ_FILES_DIR)/cuobjdump_to_ptxplus ]; then mkdir -p $(SIM_OBJ_FILES_DIR)/cuobjdump_to_ptxplus; fi;
+ if [ ! -d $(GPGPUSIM_POWER_MODEL)/obj_opt ] && [ -n $(GPGPUSIM_POWER_MODEL) ]; then mkdir -p $(GPGPUSIM_POWER_MODEL)/obj_opt; fi;
all:
$(MAKE) gpgpusim
@@ -187,5 +239,8 @@ endif
$(MAKE) clean -C ./src/gpgpu-sim/
$(MAKE) clean -C ./src/
$(MAKE) clean -C ./cuobjdump_to_ptxplus/
+ifneq ($(GPGPUSIM_POWER_MODEL),)
+ $(MAKE) clean -C $(GPGPUSIM_POWER_MODEL)
+endif
rm -rf $(SIM_LIB_DIR)
rm -rf $(SIM_OBJ_FILES_DIR)