From 326a4535733272f97c6c783ffc63165af55238f5 Mon Sep 17 00:00:00 2001 From: "petros.anastasiadis" Date: Tue, 26 Sep 2017 13:22:40 +0300 Subject: [PATCH] Update 26/09/2017 - Added Hybrid MPI-CUDA Version --- GPUs/GPU.slurm | 5 +- GPUs/Makefile | 11 ++-- GPUs/cuBLAS | Bin 27126 -> 27126 bytes GPUs/cuBLAS_MultiGPU | Bin 29936 -> 84009 bytes GPUs/cuBLAS_MultiGPU.cu | 84 +++++++++++++++++------------- GPUs/gpu_util.o | Bin 6696 -> 6696 bytes MPI/MPI-OpenMP.c | 7 ++- MPI/MPI.c | 4 +- Outputs/Debug/cuBLAS_MultiGPU.out | 1 + Outputs/Multi_GPU.gpu | 2 +- 10 files changed, 65 insertions(+), 49 deletions(-) create mode 100644 Outputs/Debug/cuBLAS_MultiGPU.out diff --git a/GPUs/GPU.slurm b/GPUs/GPU.slurm index 62b325c..c1c9a8a 100644 --- a/GPUs/GPU.slurm +++ b/GPUs/GPU.slurm @@ -11,8 +11,8 @@ #SBATCH --job-name=run_GPU # Job name #SBATCH --output=J.out # Stdout (%j expands to jobId) #SBATCH --error=J.err # Stderr (%j expands to jobId) -#SBATCH --ntasks=1 # Number of processor cores (i.e. tasks) -#SBATCH --nodes=1 # Number of nodes requested +#SBATCH --ntasks=4 # Number of processor cores (i.e. tasks) +#SBATCH --nodes=4 # Number of nodes requested #SBATCH --ntasks-per-node=1 # Tasks per node #SBATCH --cpus-per-task=1 # Threads per task #SBATCH --gres=gpu:1 # GPUs per node @@ -39,6 +39,7 @@ gpu_prog="/users/guest/petyros/Training/GPUs/cuBLAS" gpu_prog1="/users/guest/petyros/Training/GPUs/cuBLAS_MultiGPU" rm -f "$output/Single_GPU.$partition" "$output/Multi_GPU.$partition" +## Important note!!! For full GPU utilization in MultiGPU version you must use gres=ntasks-per-node values!!! for n; do srun $gpu_prog1 $n $n >> "$output/Multi_GPU.$partition" diff --git a/GPUs/Makefile b/GPUs/Makefile index 375faa9..2536870 100644 --- a/GPUs/Makefile +++ b/GPUs/Makefile @@ -12,18 +12,19 @@ CFLAGS=-O3 -lm -Wall -mavx -march=ivybridge -mtune=ivybridge -fopenmp MPI_PREFIX = $(I_MPI_ROOT) CUDA_PREFIX = $(CUDAROOT) -GPU_MPI_CXX = nvcc -L $(I_MPI_ROOT)/lib64 -lmpi +GPU_MPI_CXX = nvcc -L $(I_MPI_ROOT)/lib64 -lmpi -ccbin mpiicc GPU_CXX = nvcc LDFLAGS ?=-L $(CUDA_PREFIX)/lib64 -lcudart -lcublas -lcusparse -lm -lrt -GPU_COMPILE = nvcc -I $(CUDA_PREFIX)/include -arch sm_35 -GPU_MPI_COMPILE = $(GPU_MPI_CXX) -I $(CUDA_PREFIX)/include -arch sm_35 +GPU_COMPILE = nvcc -I $(CUDA_PREFIX)/include -arch sm_35 +GPU_MPI_COMPILE = $(GPU_MPI_CXX) -I $(CUDA_PREFIX)/include -I $(I_MPI_ROOT)/include -arch sm_35 CPU_COMPILE = $(CC) $(CFLAGS) ifeq ($(DEBUG), 1) - CPU_COMPILE += -D_DEBUG_ - GPU_COMPILE += -D_DEBUG_ + CPU_COMPILE += -D_DEBUG_ + GPU_COMPILE += -D_DEBUG_ + GPU_MPI_COMPILE += -D_DEBUG_ endif CPU_COMPILE_OBJ= $(CPU_COMPILE) -c diff --git a/GPUs/cuBLAS b/GPUs/cuBLAS index 2fdcdd01c33867b92a5f788e60607b6575ea6294..5c85da6000ce6f6b58d13b2d3fa669dfe14470a2 100755 GIT binary patch delta 46 vcmex%nep3Y#tmGFEJns@Mw|H(7c+ucleZ?hvly8e8ca$q0n?i+lIz$2jjj)R delta 46 ucmex%nep3Y#tmGFEXHQZshjx{7c+ucleZ?h0~x8wlafoo^yZ4>IyL~I*bue= diff --git a/GPUs/cuBLAS_MultiGPU b/GPUs/cuBLAS_MultiGPU index d7cf7745cfa6d457b305458f378f46353e618113..2858f12eccb121447a9fe7f78619b120ac1f2986 100755 GIT binary patch literal 84009 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

Z=Q&O-|{O28* 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 MyY&0|lI!cg0lgB-r2qf` literal 29936 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