Skip to content

Commit

Permalink
Ported Arm SVE & Instantiate 512bit
Browse files Browse the repository at this point in the history
- TBLIS requires block sizes to be constexpr. As a result VL has to be
  instantiated at compile time. Instantiate 512bit now.
- Untested yet.
  • Loading branch information
xrq-phys committed Apr 16, 2021
1 parent 8c9349e commit d1a0d77
Show file tree
Hide file tree
Showing 23 changed files with 5,273 additions and 2,989 deletions.
22 changes: 22 additions & 0 deletions Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -401,6 +401,28 @@ endif
lib_libthunderx2_la_CFLAGS = -march=armv8-a+fp+simd -mcpu=thunderx2t99
endif

if ENABLE_ARMV8A_SVE512
noinst_LTLIBRARIES += lib/libarmv8a_sve512.la
lib_libtblis_la_LIBADD += lib/libarmv8a_sve512.la
lib_libtblis_la_SOURCES += src/configs/armv8a_sve512/config.cxx
lib_libarmv8a_sve512_la_SOURCES = src/configs/armv8a_sve512/config_ker.cxx \
src/configs/armv8a_sve512/bli_gemm_armsve_asm_2vx10_unindexed.c \
src/configs/armv8a_sve512/bli_dpackm_armsve512_asm_16xk.c \
src/configs/armv8a_sve512/bli_dpackm_armsve512_asm_10xk.c
lib_libarmv8a_sve512_la_CFLAGS = -march=armv8-a+sve
CXXFLAGS += -march=armv8-a+sve
endif

if ENABLE_ARMV8A_SVE256
noinst_LTLIBRARIES += lib/libarmv8a_sve256.la
lib_libtblis_la_LIBADD += lib/libarmv8a_sve256.la
lib_libtblis_la_SOURCES += src/configs/armv8a_sve256/config.cxx
lib_libarmv8a_sve256_la_SOURCES = src/configs/armv8a_sve256/config_ker.cxx \
src/configs/armv8a_sve512/bli_gemm_armsve_asm_2vx10_unindexed.c
lib_libarmv8a_sve256_la_CFLAGS = -march=armv8-a+sve
CXXFLAGS += -march=armv8-a+sve
endif

#
# IBM architectures
#
Expand Down
194 changes: 179 additions & 15 deletions Makefile.in

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions aclocal.m4
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@
m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
[m4_warning([this file was generated for autoconf 2.69.
m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.71],,
[m4_warning([this file was generated for autoconf 2.71.
You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically 'autoreconf'.])])
Expand Down
10 changes: 6 additions & 4 deletions config.h.in
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,12 @@
/* Define to 1 if you have the <memkind.h> header file. */
#undef HAVE_MEMKIND_H

/* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H

/* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H

/* Define to 1 if you have the <stdio.h> header file. */
#undef HAVE_STDIO_H

/* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H

Expand Down Expand Up @@ -96,7 +96,9 @@
/* More convenient macro for restrict. */
#undef RESTRICT

/* Define to 1 if you have the ANSI C header files. */
/* Define to 1 if all of the C90 standard headers exist (not just the ones
required in a freestanding environment). This macro is provided for
backward compatibility; new code need not use it. */
#undef STDC_HEADERS

/* stride_type */
Expand Down
Loading

0 comments on commit d1a0d77

Please sign in to comment.