Removed OMP in sapporo

This commit is contained in:
Yohai Meiron 2021-03-17 20:39:48 -04:00
parent c6c95c393c
commit e7d5522765
5 changed files with 119 additions and 14 deletions

View file

@ -2,16 +2,15 @@
# This is the unified Makefile for the hybrid code # # This is the unified Makefile for the hybrid code #
################################################################################ ################################################################################
RUNDIR ?= phigrape RUNDIR ?= run
ETICS_LMAX ?= 2 ETICS_LMAX ?= 2
ETICS_NMAX ?= 10 ETICS_NMAX ?= 10
GPUARCH ?= sm_75 GPUARCH ?= sm_75
CUDAHOME ?= /usr/local/cuda CUDAHOME ?= /usr/local/cuda
MPIHOME ?= /home/meiron/local MPIHOME ?= /home/meiron/local
OPTIMIZATION ?= 3 OPTIMIZATION ?= 3
CFLAGS += -mcmodel=large
CXXFLAGS += $(CFLAGS) CXXFLAGS += $(CFLAGS)
CUDAFLAGS = CUDAFLAGS ?=
CXX ?= g++ CXX ?= g++
MPICC ?= mpicc MPICC ?= mpicc
@ -23,18 +22,24 @@ default: hybrid-sapporo
hybrid-yebisu: etics yebisu hybrid-yebisu: etics yebisu
make -C grapite yebisu make -C grapite yebisu
make -C $(RUNDIR) grapite make -C phigrape grapite
mkdir -p $(RUNDIR)/
cp -rp phigrape/phigrape $(RUNDIR)/
hybrid-sapporo: etics sapporo hybrid-sapporo: etics sapporo
make -C grapite sapporo make -C grapite sapporo
make -C $(RUNDIR) grapite make -C phigrape grapite
cp -rp phigrape/phigrape $(RUNDIR)/
plain-yebisu: yebisu plain-yebisu: yebisu
make -C $(RUNDIR) yebisu make -C phigrape yebisu
mkdir -p $(RUNDIR)/
cp -rp phigrape/phigrape $(RUNDIR)/
plain-sapporo: sapporo plain-sapporo: sapporo
cp -rp sapporo2/testCodes/src/g6lib.h sapporo2/lib/grape6.h cp -rp sapporo2/testCodes/src/g6lib.h sapporo2/lib/grape6.h
make -C $(RUNDIR) sapporo make -C phigrape sapporo
cp -rp phigrape/phigrape $(RUNDIR)/
etics: etics:
make -C etics/src library make -C etics/src library
@ -44,7 +49,9 @@ yebisu:
sapporo: sapporo:
make -C sapporo2/lib make -C sapporo2/lib
cd $(RUNDIR) && ln -s ../sapporo2/lib/CUDAKernels CUDA mkdir -p $(RUNDIR)/
rm -rf $(RUNDIR)/CUDA
cp -rp ../sapporo2/lib/CUDAKernels $(RUNDIR)/CUDA
################## ##################
@ -58,6 +65,6 @@ clean:
make -C yebisu clean make -C yebisu clean
make -C sapporo2/lib clean make -C sapporo2/lib clean
make -C grapite clean make -C grapite clean
make -C $(RUNDIR) clean make -C phigrape clean
.PHONY: default hybrid-yebisu hybrid-sapporo plain-yebisu plain-yebisu etics yebisu sapporo .PHONY: default hybrid-yebisu hybrid-sapporo plain-yebisu plain-yebisu etics yebisu sapporo

@ -1 +1 @@
Subproject commit 0d155035ce04cb12c1a1f09e6ae875f589c80281 Subproject commit aa58cd9b21892ece6729fbdf9062746286ae2374

@ -1 +1 @@
Subproject commit 11c0db23a3c3680fccffec7e53779a16e603f64c Subproject commit 0a2344563d4916a0947f4da7f661a5206ace098e

5
sapporo2/.gitignore vendored Normal file
View file

@ -0,0 +1,5 @@
*
!.gitignore
!get_sapporo.sh
!patch.diff

View file

@ -20,19 +20,105 @@ diff -ruN
__device__ __forceinline__ double atomicMin(double *address, double val) __device__ __forceinline__ double atomicMin(double *address, double val)
{ {
diff -ruN diff -ruN
--- lib/include/cudadev.h
+++
@@ -80,7 +80,7 @@
assert(false);\
} }
-#define cuSafeCall( call ) CU_SAFE_CALL_NO_SYNC(call);
+#define cuSafeCall( call ) call;
class context {
protected:
diff -ruN
--- lib/include/sapdevclass.h
+++
@@ -33,7 +33,10 @@
#include <cassert>
#include <iostream>
-#include <omp.h>
+#define omp_get_num_procs() 1
+#define omp_get_thread_num() 0
+#define omp_get_num_threads() 1
+#define omp_get_max_threads() 1
#include <sys/time.h>
diff -ruN
--- lib/interfaces/sapporoG6lib.cpp
+++
@@ -45,34 +45,9 @@
int g6_open_(int *id)
{
- //Check for a config file if its there use it
- id = id; //Make the compiler happy
- int *devList = NULL;
- int how_many = 0;
- FILE *fd;
- if ((fd = fopen("sapporo2.config", "r"))) {
- char line[256];
- fprintf(stderr, "sapporo2::open - config file is found\n");
- if(fgets(line, 256, fd) != NULL)
- sscanf(line, "%d", &how_many);
-
- //Read the devices we want to use
- if(how_many > 0)
- {
- devList = new int[how_many];
- for (int i = 0; i < how_many; i++) {
- if(fgets(line, 256, fd) != NULL)
- sscanf(line, "%d", &devList[i]);
- }
- }
- } else {
- fprintf(stderr," sapporo2::open - no config file is found \n");
- how_many = 0;
- }
- int res = g6_open_special(how_many, devList);
-
- delete[] devList;
-
+ int devList = *id;
+ int how_many = 1;
+ int res = g6_open_special(how_many, &devList);
return res;
}
diff -ruN
--- lib/Makefile --- lib/Makefile
+++ +++
@@ -5,7 +5,8 @@ @@ -1,11 +1,13 @@
-CXX = g++
-CC = gcc
-LD = g++
-F90 = ifort
+CXX ?= g++
+CC ?= gcc
+LD ?= g++
+F90 ?= ifort
.SUFFIXES: .o .cpp .ptx .cu .SUFFIXES: .o .cpp .ptx .cu
-CUDA_TK ?= /usr/local/cuda -CUDA_TK ?= /usr/local/cuda
+CUDAHOME ?= /usr/local/cuda +CUDAHOME ?= /usr/local/cuda
+CUDA_TK = $(CUDAHOME) +CUDA_TK = $(CUDAHOME)
+OPTIMIZATION ?= 3
testRunFlags1= testRunFlags1=
@@ -36,17 +37,8 @@ @@ -24,7 +26,7 @@
testRunFlags3="-D TIMING_STATS=1"
endif
-OFLAGS = -g -O3 -Wall -Wextra -Wstrict-aliasing=2 -fopenmp
+OFLAGS = -g -O$(OPTIMIZATION) -Wall -Wextra -Wstrict-aliasing=2
#Use below if compiling with CPU_SUPPORT (SSE)
#CXXFLAGS += ${testRunFlags} -fPIC $(OFLAGS) -I$(CUDA_TK)/include -msse4
@@ -36,23 +38,14 @@
NVCC = $(CUDA_TK)/bin/nvcc NVCC = $(CUDA_TK)/bin/nvcc
@ -48,7 +134,14 @@ diff -ruN
-#NVCCFLAGS ?= -arch sm_30 -#NVCCFLAGS ?= -arch sm_30
-#NVCCFLAGS = -arch sm_20 -#NVCCFLAGS = -arch sm_20
+GPUARCH ?= sm_75 +GPUARCH ?= sm_75
+NVCCFLAGS = -arch $(GPUARCH) +NVCCFLAGS = -arch $(GPUARCH) -ccbin $(CXX)
NVCCFLAGS += ${testRunFlags} NVCCFLAGS += ${testRunFlags}
# Use with Mac OS X # Use with Mac OS X
# NVCCFLAGS = -arch sm_12 -Xcompiler="-Duint=unsigned\ int"
-LDFLAGS = -lcuda -fopenmp
+LDFLAGS = -lcuda
INCLUDEPATH = ./include