diff --git a/config.mk b/config.mk index b5c5f15..9ca4a89 100644 --- a/config.mk +++ b/config.mk @@ -3,7 +3,7 @@ TAG ?= GCC ENABLE_OPENMP ?= false #Feature options -OPTIONS = -DSIZE=40000000ull +OPTIONS = -DSIZE=100000000ull OPTIONS += -DNTIMES=10 OPTIONS += -DARRAY_ALIGNMENT=64 #OPTIONS += -DVERBOSE_AFFINITY diff --git a/include_ICC.mk b/include_ICC.mk index 5ba42bc..7d70792 100644 --- a/include_ICC.mk +++ b/include_ICC.mk @@ -5,8 +5,8 @@ ifeq ($(ENABLE_OPENMP),true) OPENMP = -qopenmp endif -CFLAGS = -Ofast -xHost -std=c99 -ffreestanding $(OPENMP) -LFLAGS = $(OPENMP) +CFLAGS = -DLIKWID -DLIKWID_PERFMON -Ofast -xHost -std=c99 -ffreestanding $(OPENMP) $(LIKWID_INC) +LFLAGS = $(OPENMP) $(LIKWID_LIB) -llikwid DEFINES = -D_GNU_SOURCE INCLUDES = LIBS = diff --git a/src/copy.c b/src/copy.c index 7e31a0c..04c07d4 100644 --- a/src/copy.c +++ b/src/copy.c @@ -26,6 +26,9 @@ */ #include +#ifdef LIKWID +#include +#endif double copy( double * restrict a, @@ -36,10 +39,19 @@ double copy( double S, E; S = getTimeStamp(); -#pragma omp parallel for +#pragma omp parallel +{ +#ifdef LIKWID + LIKWID_MARKER_START("COPY"); +#endif +#pragma omp for for (int i=0; i +#ifdef LIKWID +#include +#endif double init( double * restrict a, @@ -36,10 +39,20 @@ double init( double S, E; S = getTimeStamp(); -#pragma omp parallel for +#pragma omp parallel +{ +#ifdef LIKWID + LIKWID_MARKER_START("INIT"); +#endif +#pragma omp for +#pragma vector nontemporal for (int i=0; i #include +#ifdef LIKWID +#include +#endif + #define HLINE "----------------------------------------------------------------------------\n" #ifndef MIN @@ -105,6 +109,11 @@ int main (int argc, char** argv) {"SDaxpy: ", 4, 2} }; +#ifdef LIKWID + LIKWID_MARKER_INIT; + LIKWID_MARKER_REGISTER("INIT"); +#endif + a = (double*) allocate( ARRAY_ALIGNMENT, N * bytesPerWord ); b = (double*) allocate( ARRAY_ALIGNMENT, N * bytesPerWord ); c = (double*) allocate( ARRAY_ALIGNMENT, N * bytesPerWord ); @@ -201,6 +210,10 @@ int main (int argc, char** argv) check(a, b, c, d, N); +#ifdef LIKWID + LIKWID_MARKER_CLOSE; +#endif + return EXIT_SUCCESS; }