Commit 8ccd92af authored by Belviranli, Mehmet E's avatar Belviranli, Mehmet E
Browse files

initial commit

parents
Loading
Loading
Loading
Loading

build/OMP_CUDART

0 → 100755
+2.4 MiB

File added.

No diff preview for this file type.

build/exp

0 → 100755
+146 −0
Original line number Diff line number Diff line
#!/bin/bash

STEP=$1

OUTPUT=$2
GLOBAL=$3
NORMAL=$4
REGULAR_ITERS=$5
PROFILE_ITERS=$6
OVERHEAD=$7

FILE=$2
PARAM=$3
COLUMN=$4
FORMATTEDOUTPUT=$5

timeIter=1

# verification takes significantly long. It is only enabled for first run on RR2 polscy. 
# you can entirely disable it by commenting the line below
VERIFICATION=-c

APPS=( HEAT SW SAT DTW INT JACOBI LUD )
SCHED_POLICIES=( RR RR2 LF )

NVPROF="timeout 1000 nvprof --events l2_subp0_write_sector_misses,l2_subp0_total_write_sector_queries,l2_subp0_read_sector_misses,l2_subp0_total_read_sector_queries"

#NVPROF="nvprof --events l2_subp0_write_sector_misses,l2_subp1_write_sector_misses,l2_subp0_total_write_sector_queries,l2_subp1_total_write_sector_queries,l2_subp0_read_sector_misses,l2_subp1_read_sector_misses,l2_subp0_total_read_sector_queries,l2_subp1_total_read_sector_queries"

EXEC=./OMP_CUDART

# The main experiment including the profiling results
if [ $STEP -eq 0 ] ; then
	for APP in "${APPS[@]}"
	do
		for SCHED_POLICY in "${SCHED_POLICIES[@]}"
		do
			./switchApp $APP $SCHED_POLICY

			if [ $APP == "JACOBI" ] ; then
				dataSize=22680
				tbSize=756
				timeIter=2
			elif [ $APP == "LUD" ] ; then
				dataSize=7680
				tbSize=512
			elif [ $APP == "HEAT" ] || [ $APP == "INT" ] || [ $APP == "SAT" ] ; then
				dataSize=46080
				tbSize=512
			elif [ $APP == "SW" ] || [ $APP == "DTW" ] ; then
				dataSize=46080
				tbSize=640
			fi

			COMMAND="$EXEC -n $dataSize -b $tbSize -r $timeIter -i 1 -d 1 -a $APP -s $SCHED_POLICY"

			if [ $NORMAL -eq 1 ] ; then
				i="0"
				while [ $i -lt $REGULAR_ITERS ]
				do
					COMMAND_MOD=$COMMAND
					#run verification only on the first run of RR2. It takes long...
					if [ $i -eq 0 ] && [ "$SCHED_POLICY" = "RR2" ] ; then
						COMMAND_MOD="$COMMAND $VERIFICATION"
					fi
					i=$[$i+1]
					echo $COMMAND_MOD >> $OUTPUT.$APP
					( set -x ; $COMMAND_MOD  >> $OUTPUT.$APP )
				done

				i="0"
				while [ $i -lt $PROFILE_ITERS ]
				do
					i=$[$i+1]
					echo $COMMAND >> $OUTPUT.$APP
					( set -x ; $NVPROF $COMMAND  >>$OUTPUT.PROF.$APP 2>>$OUTPUT.PROF.$APP )
				done
			fi
		done

		if [ $GLOBAL -eq 1 ] ; then
			# do it for global as well
			COMMAND="$EXEC -n $dataSize -b $tbSize -r $timeIter -i 1 -d 2 -a $APP -s $SCHED_POLICY "
			i="0"
			while [ $i -lt $REGULAR_ITERS ]
			do
				i=$[$i+1]
				echo $COMMAND >> $OUTPUT.$APP
				( set -x ; $COMMAND  >> $OUTPUT.$APP )
			done

			i="0"
			while [ $i -lt $PROFILE_ITERS ]
			do
				i=$[$i+1]
				#echo $COMMAND >> $OUTPUT.$APP
				#( set -x ; $NVPROF $COMMAND  >>$OUTPUT.PROF.$APP 2>>$OUTPUT.PROF.$APP )
			done
		fi
	done
fi

if [ $STEP -eq 1 ] ; then
	for APP in "${APPS[@]}"
	do
		GREPCOMMAND="egrep '$PARAM' $FILE.$APP | awk '{print \$$COLUMN}' >> $FORMATTEDOUTPUT.tmp" 
		( set +x ; eval $GREPCOMMAND )
	done
	pr -7 -t -s $FORMATTEDOUTPUT.tmp > $FORMATTEDOUTPUT
	rm $FORMATTEDOUTPUT.tmp
fi

# Scaling experiment
if [ $STEP -eq 2 ] ; then
	maxIters=10
  for APP in JACOBI;
	do
		for SCHED_POLICY in RR LF RR2;
		#for SCHED_POLICY in RR2;
		do
			./switchApp $APP $SCHED_POLICY

				dataSize=22680
				tbSize=756

			if [ $NORMAL -eq 1 ] ; then
				for (( i=2; i<=$maxIters; i++ ))
				do
					COMMAND="$EXEC -n $dataSize -b $tbSize -r $i -i 1 -d 1 -a $APP -s $SCHED_POLICY"
					echo $COMMAND >> $OUTPUT.$APP
					( set -x ; $COMMAND  >> $OUTPUT.$APP )
				done
			fi
		done

		if [ $GLOBAL -eq 1 ] ; then
			for (( i=1; i<=$maxIters; i++ ))
			do
				COMMAND="$EXEC -n $dataSize -b $tbSize -r $i -i 1 -d 2 -a $APP -s $SCHED_POLICY"
				echo $COMMAND >> $OUTPUT.$APP
				( set -x ; $COMMAND  >> $OUTPUT.$APP )
			done
		fi
	done
fi

build/makefile

0 → 100644
+212 −0
Original line number Diff line number Diff line
################################################################################
# Automatically-generated file. Do not edit!
################################################################################

-include ../makefile.init

RM := rm -rf

# All of the sources participating in the build are defined here

CU_SRCS := 
C_UPPER_SRCS := 
CXX_SRCS := 
C++_SRCS := 
OBJ_SRCS := 
CC_SRCS := 
ASM_SRCS := 
CPP_SRCS := 
C_SRCS := 
O_SRCS := 
S_UPPER_SRCS := 
CC_DEPS := 
C++_DEPS := 
EXECUTABLES := 
C_UPPER_DEPS := 
CXX_DEPS := 
OBJS := 
CU_DEPS := 
CPP_DEPS := 
C_DEPS := 

USER_OBJS :=
LIBS :=

NVCC := $(CUDA_HOME)/bin/nvcc -std=c++11




# Every subdirectory with source files must be described here
SUBDIRS := \
./src \
./src/helper \
./src/apps/wavefront \
./src/apps/sparselu \
./src/apps/snap \
./src/apps \
./src/apps/jacobi \


CU_SRCS += \
../src/rt_device.cu \
../src/rt_host.cu \
../src/helper/utils.cu \
../src/apps/wavefront/wavefront-global.cu \
../src/apps/wavefront/wavefront-run.cu \
../src/apps/wavefront/wavefront-task.cu \
../src/apps/wavefront/wavefront-seq.cu \
../src/apps/sparselu/sparselu-global.cu \
../src/apps/sparselu/sparselu-run.cu \
../src/apps/sparselu/sparselu-seq.cu \
../src/apps/sparselu/sparselu-task-dep.cu \
../src/apps/snap/snap-global.cu \
../src/apps/snap/snap-kernel.cu \
../src/apps/snap/snap-run.cu \
../src/apps/snap/snap-task.cu \
../src/apps/main.cu \
../src/apps/jacobi/jacobi-global.cu \
../src/apps/jacobi/jacobi-task.cu \
../src/apps/jacobi/jacobi-seq.cu \
../src/apps/jacobi/jacobi-run.cu 


OBJS += \
./src/rt_device.o \
./src/rt_host.o \
./src/helper/utils.o\
./src/apps/wavefront/wavefront-global.o \
./src/apps/wavefront/wavefront-run.o \
./src/apps/wavefront/wavefront-task.o \
./src/apps/wavefront/wavefront-seq.o \
./src/apps/sparselu/sparselu-global.o \
./src/apps/sparselu/sparselu-run.o \
./src/apps/sparselu/sparselu-seq.o \
./src/apps/sparselu/sparselu-task-dep.o \
./src/apps/snap/snap-global.o \
./src/apps/snap/snap-kernel.o \
./src/apps/snap/snap-run.o \
./src/apps/snap/snap-task.o \
./src/apps/main.o \
./src/apps/jacobi/jacobi-global.o \
./src/apps/jacobi/jacobi-task.o \
./src/apps/jacobi/jacobi-seq.o \
./src/apps/jacobi/jacobi-run.o 



CU_DEPS += \
./src/rt_device.d \
./src/rt_host.d \
./src/helper/utils.d \
./src/apps/wavefront/wavefront-global.d \
./src/apps/wavefront/wavefront-run.d \
./src/apps/wavefront/wavefront-seq.d \
./src/apps/wavefront/wavefront-task.d \
./src/apps/sparselu/sparselu-global.d \
./src/apps/sparselu/sparselu-run.d \
./src/apps/sparselu/sparselu-seq.d \
./src/apps/sparselu/sparselu-task-dep.d \
./src/apps/snap/snap-global.d \
./src/apps/snap/snap-kernel.d \
./src/apps/snap/snap-run.d \
./src/apps/snap/snap-task.d \
./src/apps/main.d \
./src/apps/jacobi/jacobi-global.d \
./src/apps/jacobi/jacobi-task.d \
./src/apps/jacobi/jacobi-seq.d \
./src/apps/jacobi/jacobi-run.d


src/%.o: ../src/%.cu
	$(NVCC) -I/usr/local/cuda/include -I/usr/local/cuda/samples/common/inc/ -G -g -O3 -gencode arch=compute_60,code=sm_60 -m64 -odir "src" -M -o "$(@:%.o=%.d)" "$<"
	$(NVCC) -I/usr/local/cuda/include -I/usr/local/cuda/samples/common/inc/ -G -g -O3 --compile --relocatable-device-code=true -gencode arch=compute_60,code=compute_60 -gencode arch=compute_60,code=sm_60 -m64  -x cu -o  "$@" "$<"

src/helper/%.o: ../src/helper/%.cu
	$(NVCC) -I/usr/local/cuda/include -I/usr/local/cuda/samples/common/inc/ -G -g -O3 -gencode arch=compute_60,code=sm_60 -m64 -odir "src/helper" -M -o "$(@:%.o=%.d)" "$<"
	$(NVCC) -I/usr/local/cuda/include -I/usr/local/cuda/samples/common/inc/ -G -g -O3 --compile --relocatable-device-code=true -gencode arch=compute_60,code=compute_60 -gencode arch=compute_60,code=sm_60 -m64  -x cu -o  "$@" "$<"
	
src/apps/wavefront/%.o: ../src/apps/wavefront/%.cu
	$(NVCC) -I/usr/local/cuda/include -I/usr/local/cuda/samples/common/inc/ -G -g -O3 -gencode arch=compute_60,code=sm_60 -m64 -odir "src/apps/wavefront" -M -o "$(@:%.o=%.d)" "$<"
	$(NVCC) -I/usr/local/cuda/include -I/usr/local/cuda/samples/common/inc/ -G -g -O3 --compile --relocatable-device-code=true -gencode arch=compute_60,code=compute_60 -gencode arch=compute_60,code=sm_60 -m64  -x cu -o  "$@" "$<"
	
src/apps/sparselu/%.o: ../src/apps/sparselu/%.cu
	$(NVCC) -I/usr/local/cuda/include -I/usr/local/cuda/samples/common/inc/ -G -g -O3 -gencode arch=compute_60,code=sm_60 -m64 -odir "src/apps/sparselu" -M -o "$(@:%.o=%.d)" "$<"
	$(NVCC) -I/usr/local/cuda/include -I/usr/local/cuda/samples/common/inc/ -G -g -O3 --compile --relocatable-device-code=true -gencode arch=compute_60,code=compute_60 -gencode arch=compute_60,code=sm_60 -m64  -x cu -o  "$@" "$<"

src/apps/snap/%.o: ../src/apps/snap/%.cu
	$(NVCC) -I/usr/local/cuda/include -I/usr/local/cuda/samples/common/inc/ -G -g -O3 -gencode arch=compute_60,code=sm_60 -m64 -odir "src/apps/snap" -M -o "$(@:%.o=%.d)" "$<"
	$(NVCC) -I/usr/local/cuda/include -I/usr/local/cuda/samples/common/inc/ -G -g -O3 --compile --relocatable-device-code=true -gencode arch=compute_60,code=compute_60 -gencode arch=compute_60,code=sm_60 -m64  -x cu -o  "$@" "$<"

src/apps/%.o: ../src/apps/%.cu
	$(NVCC) -I/usr/local/cuda/include -I/usr/local/cuda/samples/common/inc/ -G -g -O3 -gencode arch=compute_60,code=sm_60 -m64 -odir "src/apps" -M -o "$(@:%.o=%.d)" "$<"
	$(NVCC) -I/usr/local/cuda/include -I/usr/local/cuda/samples/common/inc/ -G -g -O3 --compile --relocatable-device-code=true -gencode arch=compute_60,code=compute_60 -gencode arch=compute_60,code=sm_60 -m64  -x cu -o  "$@" "$<"

src/apps/jacobi/%.o: ../src/apps/jacobi/%.cu
	$(NVCC) -I/usr/local/cuda/include -I/usr/local/cuda/samples/common/inc/ -G -g -O3 -gencode arch=compute_60,code=sm_60 -m64 -odir "src/apps/jacobi" -M -o "$(@:%.o=%.d)" "$<"
	$(NVCC) -I/usr/local/cuda/include -I/usr/local/cuda/samples/common/inc/ -G -g -O3 --compile --relocatable-device-code=true -gencode arch=compute_60,code=compute_60 -gencode arch=compute_60,code=sm_60 -m64  -x cu -o  "$@" "$<"


OS_SUFFIX := $(subst Linux,linux,$(subst Darwin/x86_64,darwin,$(shell uname -s)/$(shell uname -m)))


ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(CC_DEPS)),)
-include $(CC_DEPS)
endif
ifneq ($(strip $(C++_DEPS)),)
-include $(C++_DEPS)
endif
ifneq ($(strip $(C_UPPER_DEPS)),)
-include $(C_UPPER_DEPS)
endif
ifneq ($(strip $(CXX_DEPS)),)
-include $(CXX_DEPS)
endif
ifneq ($(strip $(CU_DEPS)),)
-include $(CU_DEPS)
endif
ifneq ($(strip $(CPP_DEPS)),)
-include $(CPP_DEPS)
endif
ifneq ($(strip $(C_DEPS)),)
-include $(C_DEPS)
endif
endif

-include ../makefile.defs

# OpenGL+GLUT OS-specific define
ifeq ($(shell uname -s),Darwin)
GLUT_LIBS := -Xlinker -framework -Xlinker GLUT -Xlinker -framework -Xlinker OpenGL
else
GLUT_LIBS := -lGL -lGLU -lglut 
endif

# All Target
all: directories OMP_CUDART

# Tool invocations
OMP_CUDART: $(OBJS) $(USER_OBJS)
	@echo 'Building target: $@'
	@echo 'Invoking: NVCC Linker'
	$(NVCC) --cudart static -L"/usr/local/cuda/samples/common/lib/linux/x86_64" --relocatable-device-code=true -gencode arch=compute_60,code=compute_60 -gencode arch=compute_60,code=sm_60 -m64 -link -o  "OMP_CUDART" $(OBJS) $(USER_OBJS) $(LIBS)
	@if [ $(shell uname -s) = "Darwin" ]; then dsymutil $@; fi
	@echo 'Finished building target: $@'
	@echo ' '

# Other Targets
clean:
	-$(RM) $(CC_DEPS)$(C++_DEPS)$(EXECUTABLES)$(C_UPPER_DEPS)$(CXX_DEPS)$(OBJS)$(CU_DEPS)$(CPP_DEPS)$(C_DEPS) OMP_CUDART
	-@echo ' '

directories: $(SUBDIRS)

$(SUBDIRS):
	mkdir -p ./$(SUBDIRS)


.PHONY: all clean dependents directories
.SECONDARY:

-include ../makefile.targets
+0 −0

Empty file added.

+0 −0

Empty file added.