Introduce minimal likwid header. Add markers to more benchmarks
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
# Supported: GCC, CLANG, ICC
|
||||
TAG ?= GCC
|
||||
TAG ?= ICC
|
||||
ENABLE_OPENMP ?= false
|
||||
ENABLE_LIKWID ?= false
|
||||
|
||||
|
||||
@@ -2,10 +2,9 @@ LIKWID_INC ?= -I/usr/local/include
|
||||
LIKWID_DEFINES ?= -DLIKWID_PERFMON
|
||||
LIKWID_LIB ?= -L/usr/local/lib
|
||||
|
||||
|
||||
ifeq ($(strip $(ENABLE_LIKWID)),true)
|
||||
INCLUDES += ${LIKWID_INC}
|
||||
DEFINES += -DLIKWID ${LIKWID_DEFINES}
|
||||
DEFINES += ${LIKWID_DEFINES}
|
||||
LIBS += -llikwid
|
||||
LFLAGS += ${LIKWID_LIB}
|
||||
endif
|
||||
|
||||
10
src/copy.c
10
src/copy.c
@@ -26,9 +26,7 @@
|
||||
*/
|
||||
|
||||
#include <timing.h>
|
||||
#ifdef LIKWID
|
||||
#include <likwid.h>
|
||||
#endif
|
||||
#include <likwid_markers.h>
|
||||
|
||||
double copy(
|
||||
double * restrict a,
|
||||
@@ -41,16 +39,12 @@ double copy(
|
||||
S = getTimeStamp();
|
||||
#pragma omp parallel
|
||||
{
|
||||
#ifdef LIKWID
|
||||
LIKWID_MARKER_START("COPY");
|
||||
#endif
|
||||
#pragma omp for
|
||||
#pragma omp for
|
||||
for (int i=0; i<N; i++) {
|
||||
a[i] = b[i];
|
||||
}
|
||||
#ifdef LIKWID
|
||||
LIKWID_MARKER_STOP("COPY");
|
||||
#endif
|
||||
}
|
||||
E = getTimeStamp();
|
||||
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
*/
|
||||
|
||||
#include <timing.h>
|
||||
#include <likwid_markers.h>
|
||||
|
||||
double daxpy(
|
||||
double * restrict a,
|
||||
@@ -37,10 +38,15 @@ double daxpy(
|
||||
double S, E;
|
||||
|
||||
S = getTimeStamp();
|
||||
#pragma omp parallel for
|
||||
#pragma omp parallel
|
||||
{
|
||||
LIKWID_MARKER_START("DAXPY");
|
||||
#pragma omp for
|
||||
for (int i=0; i<N; i++) {
|
||||
a[i] = a[i] + scalar * b[i];
|
||||
}
|
||||
LIKWID_MARKER_STOP("DAXPY");
|
||||
}
|
||||
E = getTimeStamp();
|
||||
|
||||
return E-S;
|
||||
|
||||
@@ -26,9 +26,7 @@
|
||||
*/
|
||||
|
||||
#include <timing.h>
|
||||
#ifdef LIKWID
|
||||
#include <likwid.h>
|
||||
#endif
|
||||
#include <likwid_markers.h>
|
||||
|
||||
double init(
|
||||
double * restrict a,
|
||||
@@ -41,17 +39,13 @@ double init(
|
||||
S = getTimeStamp();
|
||||
#pragma omp parallel
|
||||
{
|
||||
#ifdef LIKWID
|
||||
LIKWID_MARKER_START("INIT");
|
||||
#endif
|
||||
#pragma omp for
|
||||
#pragma vector nontemporal
|
||||
for (int i=0; i<N; i++) {
|
||||
a[i] = scalar;
|
||||
}
|
||||
#ifdef LIKWID
|
||||
LIKWID_MARKER_STOP("INIT");
|
||||
#endif
|
||||
}
|
||||
E = getTimeStamp();
|
||||
|
||||
|
||||
10
src/main.c
10
src/main.c
@@ -38,10 +38,7 @@
|
||||
#include <timing.h>
|
||||
#include <allocate.h>
|
||||
#include <affinity.h>
|
||||
|
||||
#ifdef LIKWID
|
||||
#include <likwid.h>
|
||||
#endif
|
||||
#include <likwid_markers.h>
|
||||
|
||||
#define HLINE "----------------------------------------------------------------------------\n"
|
||||
|
||||
@@ -109,7 +106,6 @@ int main (int argc, char** argv)
|
||||
{"SDaxpy: ", 4, 2}
|
||||
};
|
||||
|
||||
#ifdef LIKWID
|
||||
LIKWID_MARKER_INIT;
|
||||
#ifdef _OPENMP
|
||||
#pragma omp parallel
|
||||
@@ -119,7 +115,6 @@ int main (int argc, char** argv)
|
||||
LIKWID_MARKER_REGISTER("COPY");
|
||||
#ifdef _OPENMP
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
a = (double*) allocate( ARRAY_ALIGNMENT, N * bytesPerWord );
|
||||
@@ -217,10 +212,7 @@ int main (int argc, char** argv)
|
||||
printf(HLINE);
|
||||
|
||||
check(a, b, c, d, N);
|
||||
|
||||
#ifdef LIKWID
|
||||
LIKWID_MARKER_CLOSE;
|
||||
#endif
|
||||
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
||||
14
src/triad.c
14
src/triad.c
@@ -26,6 +26,7 @@
|
||||
*/
|
||||
|
||||
#include <timing.h>
|
||||
#include <likwid_markers.h>
|
||||
|
||||
double triad(
|
||||
double * restrict a,
|
||||
@@ -38,11 +39,16 @@ double triad(
|
||||
double S, E;
|
||||
|
||||
S = getTimeStamp();
|
||||
#pragma omp parallel for
|
||||
for (int i=0; i<N; i++) {
|
||||
a[i] = b[i] + scalar * c[i];
|
||||
#pragma omp parallel
|
||||
{
|
||||
LIKWID_MARKER_START("TRIAD");
|
||||
#pragma omp for
|
||||
for (int i=0; i<N; i++) {
|
||||
a[i] = b[i] + scalar * c[i];
|
||||
}
|
||||
E = getTimeStamp();
|
||||
LIKWID_MARKER_STOP("TRIAD");
|
||||
}
|
||||
E = getTimeStamp();
|
||||
|
||||
return E-S;
|
||||
}
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
*/
|
||||
|
||||
#include <timing.h>
|
||||
#include <likwid_markers.h>
|
||||
|
||||
double update(
|
||||
double * restrict a,
|
||||
@@ -36,10 +37,15 @@ double update(
|
||||
double S, E;
|
||||
|
||||
S = getTimeStamp();
|
||||
#pragma omp parallel for
|
||||
#pragma omp parallel
|
||||
{
|
||||
LIKWID_MARKER_START("UPDATE");
|
||||
#pragma omp for
|
||||
for (int i=0; i<N; i++) {
|
||||
a[i] = a[i] * scalar;
|
||||
}
|
||||
LIKWID_MARKER_STOP("UPDATE");
|
||||
}
|
||||
E = getTimeStamp();
|
||||
|
||||
return E-S;
|
||||
|
||||
Reference in New Issue
Block a user