compile for multiple target platforms
This commit is contained in:
parent
976dfb6174
commit
b4298be6ab
11 changed files with 1359 additions and 1164 deletions
24
.gitignore
vendored
24
.gitignore
vendored
|
@ -6,14 +6,24 @@
|
||||||
**~
|
**~
|
||||||
**.pyc
|
**.pyc
|
||||||
**.pyo
|
**.pyo
|
||||||
|
.libs
|
||||||
|
**/.deps
|
||||||
|
**/.dirstamp
|
||||||
|
|
||||||
/auto
|
/auto
|
||||||
/autom4te.cache
|
/autom4te.cache
|
||||||
/config.log
|
/m4
|
||||||
/config.status
|
config.log
|
||||||
/config/config.auto
|
config.guess
|
||||||
|
config.sub
|
||||||
|
ltmain.sh
|
||||||
|
compile
|
||||||
|
missing
|
||||||
|
/comp
|
||||||
/configure
|
/configure
|
||||||
/sharp_oracle.inc
|
/Makefile
|
||||||
|
/Makefile.in
|
||||||
/python/libsharp/libsharp.c
|
/aclocal.m4
|
||||||
/python/libsharp/libsharp_mpi.c
|
/ar-lib
|
||||||
|
/depcomp
|
||||||
|
/install-sh
|
||||||
|
|
|
@ -10,6 +10,11 @@ src_sharp = \
|
||||||
libsharp/sharp.c \
|
libsharp/sharp.c \
|
||||||
libsharp/sharp_almhelpers.c \
|
libsharp/sharp_almhelpers.c \
|
||||||
libsharp/sharp_core.c \
|
libsharp/sharp_core.c \
|
||||||
|
libsharp/sharp_core_avx.c \
|
||||||
|
libsharp/sharp_core_avx2.c \
|
||||||
|
libsharp/sharp_core_fma.c \
|
||||||
|
libsharp/sharp_core_fma4.c \
|
||||||
|
libsharp/sharp_core_avx512f.c \
|
||||||
libsharp/sharp_geomhelpers.c \
|
libsharp/sharp_geomhelpers.c \
|
||||||
libsharp/sharp_legendre_roots.c \
|
libsharp/sharp_legendre_roots.c \
|
||||||
libsharp/sharp_ylmgen_c.c \
|
libsharp/sharp_ylmgen_c.c \
|
||||||
|
@ -24,6 +29,9 @@ include_HEADERS = \
|
||||||
libsharp/sharp_almhelpers.h \
|
libsharp/sharp_almhelpers.h \
|
||||||
libsharp/sharp_cxx.h
|
libsharp/sharp_cxx.h
|
||||||
|
|
||||||
|
EXTRA_DIST = \
|
||||||
|
libsharp/sharp_core_inc.c
|
||||||
|
|
||||||
libsharp_la_SOURCES = $(src_sharp)
|
libsharp_la_SOURCES = $(src_sharp)
|
||||||
|
|
||||||
check_PROGRAMS = sharp_testsuite
|
check_PROGRAMS = sharp_testsuite
|
||||||
|
|
File diff suppressed because it is too large
Load diff
11
libsharp/sharp_core_avx.c
Normal file
11
libsharp/sharp_core_avx.c
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
#if (!defined(__AVX__)) && defined(__GNUC__) && defined (__x86_64__) && (__GNUC__>=6)
|
||||||
|
|
||||||
|
#define XCONCATX(a,b) a##_##b
|
||||||
|
#define XCONCATX2(a,b) XCONCATX(a,b)
|
||||||
|
#define XARCH(a) XCONCATX2(a,ARCH)
|
||||||
|
|
||||||
|
#define ARCH avx
|
||||||
|
#pragma GCC target("avx")
|
||||||
|
#include "sharp_core_inc.c"
|
||||||
|
|
||||||
|
#endif
|
11
libsharp/sharp_core_avx2.c
Normal file
11
libsharp/sharp_core_avx2.c
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
#if (!defined(__AVX2__)) && defined(__GNUC__) && defined (__x86_64__) && (__GNUC__>=6)
|
||||||
|
|
||||||
|
#define XCONCATX(a,b) a##_##b
|
||||||
|
#define XCONCATX2(a,b) XCONCATX(a,b)
|
||||||
|
#define XARCH(a) XCONCATX2(a,ARCH)
|
||||||
|
|
||||||
|
#define ARCH avx2
|
||||||
|
#pragma GCC target("avx2")
|
||||||
|
#include "sharp_core_inc.c"
|
||||||
|
|
||||||
|
#endif
|
11
libsharp/sharp_core_avx512f.c
Normal file
11
libsharp/sharp_core_avx512f.c
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
#if (!defined(__AVX512F__)) && defined(__GNUC__) && defined (__x86_64__) && (__GNUC__>=6)
|
||||||
|
|
||||||
|
#define XCONCATX(a,b) a##_##b
|
||||||
|
#define XCONCATX2(a,b) XCONCATX(a,b)
|
||||||
|
#define XARCH(a) XCONCATX2(a,ARCH)
|
||||||
|
|
||||||
|
#define ARCH avx512f
|
||||||
|
#pragma GCC target("avx512f")
|
||||||
|
#include "sharp_core_inc.c"
|
||||||
|
|
||||||
|
#endif
|
11
libsharp/sharp_core_fma.c
Normal file
11
libsharp/sharp_core_fma.c
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
#if (!defined(__FMA__)) && defined(__GNUC__) && defined (__x86_64__) && (__GNUC__>=6)
|
||||||
|
|
||||||
|
#define XCONCATX(a,b) a##_##b
|
||||||
|
#define XCONCATX2(a,b) XCONCATX(a,b)
|
||||||
|
#define XARCH(a) XCONCATX2(a,ARCH)
|
||||||
|
|
||||||
|
#define ARCH fma
|
||||||
|
#pragma GCC target("fma")
|
||||||
|
#include "sharp_core_inc.c"
|
||||||
|
|
||||||
|
#endif
|
11
libsharp/sharp_core_fma4.c
Normal file
11
libsharp/sharp_core_fma4.c
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
#if (!defined(__FMA4__)) && defined(__GNUC__) && defined (__x86_64__) && (__GNUC__>=6)
|
||||||
|
|
||||||
|
#define XCONCATX(a,b) a##_##b
|
||||||
|
#define XCONCATX2(a,b) XCONCATX(a,b)
|
||||||
|
#define XARCH(a) XCONCATX2(a,ARCH)
|
||||||
|
|
||||||
|
#define ARCH fma4
|
||||||
|
#pragma GCC target("fma4")
|
||||||
|
#include "sharp_core_inc.c"
|
||||||
|
|
||||||
|
#endif
|
1175
libsharp/sharp_core_inc.c
Normal file
1175
libsharp/sharp_core_inc.c
Normal file
File diff suppressed because it is too large
Load diff
|
@ -68,5 +68,6 @@ void inner_loop (sharp_job *job, const int *ispair,const double *cth,
|
||||||
|
|
||||||
int sharp_veclen(void);
|
int sharp_veclen(void);
|
||||||
int sharp_max_nvec(int spin);
|
int sharp_max_nvec(int spin);
|
||||||
|
const char *sharp_architecture(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -71,9 +71,6 @@ static void MPI_status(void)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static void vecmath_status(void)
|
|
||||||
{ printf("Supported vector length: %d\n",sharp_veclen()); }
|
|
||||||
|
|
||||||
static void sharp_announce (const char *name)
|
static void sharp_announce (const char *name)
|
||||||
{
|
{
|
||||||
size_t m, nlen=strlen(name);
|
size_t m, nlen=strlen(name);
|
||||||
|
@ -84,7 +81,8 @@ static void sharp_announce (const char *name)
|
||||||
printf("+-");
|
printf("+-");
|
||||||
for (m=0; m<nlen; ++m) printf("-");
|
for (m=0; m<nlen; ++m) printf("-");
|
||||||
printf("-+\n\n");
|
printf("-+\n\n");
|
||||||
vecmath_status();
|
printf("Detected hardware architecture: %s\n", sharp_architecture());
|
||||||
|
printf("Supported vector length: %d\n", sharp_veclen());
|
||||||
OpenMP_status();
|
OpenMP_status();
|
||||||
MPI_status();
|
MPI_status();
|
||||||
printf("\n");
|
printf("\n");
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue