diff --git a/Makefile b/Makefile index 78ffd5c..4923b55 100644 --- a/Makefile +++ b/Makefile @@ -19,20 +19,45 @@ NVCC ?= $(CUDAHOME)/bin/nvcc export -all: +default: hybrid-sapporo + +hybrid-yebisu: etics yebisu + make -C grapite yebisu + make -C $(RUNDIR) grapite + +hybrid-sapporo: etics sapporo + make -C grapite sapporo + make -C $(RUNDIR) grapite + +plain-yebisu: yebisu + make -C $(RUNDIR) yebisu + +plain-sapporo: sapporo + cp -rp sapporo2/testCodes/src/g6lib.h sapporo2/lib/grape6.h + make -C $(RUNDIR) sapporo + +etics: make -C etics/src library - make -C yebisu - make -C grapite - make -C $(RUNDIR) yebisu: make -C yebisu - make -C $(RUNDIR) yebisu +sapporo: + make -C sapporo2/lib + cd $(RUNDIR) && ln -s ../sapporo2/lib/CUDAKernels CUDA + + +################## +# +#yebisu: +# make -C yebisu +# make -C $(RUNDIR) yebisu +# clean: make -C etics/src clean make -C yebisu clean + make -C sapporo2/lib clean make -C grapite clean make -C $(RUNDIR) clean -.PHONY: all yebisu clean +.PHONY: default hybrid-yebisu hybrid-sapporo plain-yebisu plain-yebisu etics yebisu sapporo diff --git a/grapite b/grapite index 4341ebb..0d15503 160000 --- a/grapite +++ b/grapite @@ -1 +1 @@ -Subproject commit 4341ebbe988aeaf2fb7aacba6e47e1759c8e518b +Subproject commit 0d155035ce04cb12c1a1f09e6ae875f589c80281 diff --git a/phigrape b/phigrape index 35a90c3..11c0db2 160000 --- a/phigrape +++ b/phigrape @@ -1 +1 @@ -Subproject commit 35a90c343fbe7d699d1e32f03f2f2ce2ef561fde +Subproject commit 11c0db23a3c3680fccffec7e53779a16e603f64c diff --git a/sapporo2/get_sapporo.sh b/sapporo2/get_sapporo.sh new file mode 100755 index 0000000..1a45a67 --- /dev/null +++ b/sapporo2/get_sapporo.sh @@ -0,0 +1,9 @@ +#!/bin/bash +commit=7c3f80acf1df5a8907118706a2260184cfccc6a1 +archive_md5sum=b7b17eeded2cb5dfb9e174424b3f7ecb +url=https://github.com/treecode/sapporo2/archive/$commit.tar.gz +wget -O sapporo2.tar.gz $url +md5sum --check <<<"$archive_md5sum sapporo2.tar.gz" +tar --strip-components=1 -xvf sapporo2.tar.gz +rm -f sapporo2.tar.gz +patch -p0 < patch.diff diff --git a/sapporo2/patch.diff b/sapporo2/patch.diff new file mode 100644 index 0000000..e4091ed --- /dev/null +++ b/sapporo2/patch.diff @@ -0,0 +1,54 @@ +diff -ruN +--- lib/CUDAKernels/kernels.cu ++++ +@@ -206,7 +206,7 @@ + // template<> __device__ __forceinline__ double RSQRT(double val) { return 1.0/sqrt(val); } + + +- ++#if (CUDART_VERSION <= 8000) + __device__ double atomicAdd(double* address, double val) + { + unsigned long long int* address_as_ull = +@@ -220,7 +220,7 @@ + } while (assumed != old); + return __longlong_as_double(old); + } +- ++#endif + + __device__ __forceinline__ double atomicMin(double *address, double val) + { +diff -ruN +--- lib/Makefile ++++ +@@ -5,7 +5,8 @@ + + .SUFFIXES: .o .cpp .ptx .cu + +-CUDA_TK ?= /usr/local/cuda ++CUDAHOME ?= /usr/local/cuda ++CUDA_TK = $(CUDAHOME) + + + testRunFlags1= +@@ -36,17 +37,8 @@ + NVCC = $(CUDA_TK)/bin/nvcc + + +-# Support older CUDA versions out of the box +-NVCCVERSION=$(shell "${NVCC}" --version | grep ^Cuda | sed 's/^.* //g') +-ifeq "${NVCCVERSION}" "V5.5.22" +- NVCCFLAGS ?= -arch sm_20 +-else +- NVCCFLAGS ?= -arch sm_30 +-endif +- +-#NVCCFLAGS = -arch sm_35 +-#NVCCFLAGS ?= -arch sm_30 +-#NVCCFLAGS = -arch sm_20 ++GPUARCH ?= sm_75 ++NVCCFLAGS = -arch $(GPUARCH) + NVCCFLAGS += ${testRunFlags} + + # Use with Mac OS X