Skip to content

Commit

Permalink
1. Extend the support of VLEN to 65536. The data type in struct tw_in…
Browse files Browse the repository at this point in the history
…str of kernel/ifftw.h should be extended synchronously, to support longer integer.

2. Include vtw.h for VTW1, VTW2, and VTWS, to be compatible with the coding style of ARM SVE. Although the vtw.h is auto-generated in the version of ARM SVE, for the integrity and correctness, the vtw.h will be submitted in this version.
  • Loading branch information
sh-zheng committed May 6, 2023
1 parent cbf34e4 commit 4b98782
Show file tree
Hide file tree
Showing 31 changed files with 5,654 additions and 164 deletions.
14 changes: 13 additions & 1 deletion Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,19 @@ rdft/simd/rvv256/librdft_rvv256_codelets.la \
dft/simd/rvv512/libdft_rvv512_codelets.la \
rdft/simd/rvv512/librdft_rvv512_codelets.la \
dft/simd/rvv1024/libdft_rvv1024_codelets.la \
rdft/simd/rvv1024/librdft_rvv1024_codelets.la
rdft/simd/rvv1024/librdft_rvv1024_codelets.la \
dft/simd/rvv2048/libdft_rvv2048_codelets.la \
rdft/simd/rvv2048/librdft_rvv2048_codelets.la \
dft/simd/rvv4096/libdft_rvv4096_codelets.la \
rdft/simd/rvv4096/librdft_rvv4096_codelets.la \
dft/simd/rvv8192/libdft_rvv8192_codelets.la \
rdft/simd/rvv8192/librdft_rvv8192_codelets.la \
dft/simd/rvv16384/libdft_rvv16384_codelets.la \
rdft/simd/rvv16384/librdft_rvv16384_codelets.la \
dft/simd/rvv32768/libdft_rvv32768_codelets.la \
rdft/simd/rvv32768/librdft_rvv32768_codelets.la \
dft/simd/rvv65536/libdft_rvv65536_codelets.la \
rdft/simd/rvv65536/librdft_rvv65536_codelets.la
endif

if THREADS
Expand Down
2 changes: 1 addition & 1 deletion api/version.c
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ const char X(version)[] = PACKAGE "-" PACKAGE_VERSION
"-generic_simd256"
#endif

#if defined(HAVE_R5V)
#if defined(HAVE_RVV)
"-rvv"
#endif

Expand Down
12 changes: 12 additions & 0 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -780,6 +780,12 @@ AC_CONFIG_FILES([
dft/simd/rvv256/Makefile
dft/simd/rvv512/Makefile
dft/simd/rvv1024/Makefile
dft/simd/rvv2048/Makefile
dft/simd/rvv4096/Makefile
dft/simd/rvv8192/Makefile
dft/simd/rvv16384/Makefile
dft/simd/rvv32768/Makefile
dft/simd/rvv65536/Makefile
rdft/Makefile
rdft/scalar/Makefile
Expand All @@ -804,6 +810,12 @@ AC_CONFIG_FILES([
rdft/simd/rvv256/Makefile
rdft/simd/rvv512/Makefile
rdft/simd/rvv1024/Makefile
rdft/simd/rvv2048/Makefile
rdft/simd/rvv4096/Makefile
rdft/simd/rvv8192/Makefile
rdft/simd/rvv16384/Makefile
rdft/simd/rvv32768/Makefile
rdft/simd/rvv65536/Makefile
reodft/Makefile
Expand Down
6 changes: 6 additions & 0 deletions dft/codelet-dft.h
Original file line number Diff line number Diff line change
Expand Up @@ -112,5 +112,11 @@ extern const solvtab X(solvtab_dft_rvv128);
extern const solvtab X(solvtab_dft_rvv256);
extern const solvtab X(solvtab_dft_rvv512);
extern const solvtab X(solvtab_dft_rvv1024);
extern const solvtab X(solvtab_dft_rvv2048);
extern const solvtab X(solvtab_dft_rvv4096);
extern const solvtab X(solvtab_dft_rvv8192);
extern const solvtab X(solvtab_dft_rvv16384);
extern const solvtab X(solvtab_dft_rvv32768);
extern const solvtab X(solvtab_dft_rvv65536);

#endif /* __DFT_CODELET_H__ */
12 changes: 12 additions & 0 deletions dft/conf.c
Original file line number Diff line number Diff line change
Expand Up @@ -95,5 +95,17 @@ void X(dft_conf_standard)(planner *p)
X(solvtab_exec)(X(solvtab_dft_rvv512), p);
if (X(have_simd_rvv)(1024))
X(solvtab_exec)(X(solvtab_dft_rvv1024), p);
if (X(have_simd_rvv)(2048))
X(solvtab_exec)(X(solvtab_dft_rvv2048), p);
if (X(have_simd_rvv)(4096))
X(solvtab_exec)(X(solvtab_dft_rvv4096), p);
if (X(have_simd_rvv)(8192))
X(solvtab_exec)(X(solvtab_dft_rvv8192), p);
if (X(have_simd_rvv)(16384))
X(solvtab_exec)(X(solvtab_dft_rvv16384), p);
if (X(have_simd_rvv)(32768))
X(solvtab_exec)(X(solvtab_dft_rvv32768), p);
if (X(have_simd_rvv)(65536))
X(solvtab_exec)(X(solvtab_dft_rvv65536), p);
#endif
}
2 changes: 1 addition & 1 deletion dft/simd/Makefile.am
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
AM_CPPFLAGS = -I $(top_srcdir)
SUBDIRS = common sse2 avx avx-128-fma avx2 avx2-128 avx512 kcvi altivec vsx neon generic-simd128 generic-simd256 rvv128 rvv256 rvv512 rvv1024
SUBDIRS = common sse2 avx avx-128-fma avx2 avx2-128 avx512 kcvi altivec vsx neon generic-simd128 generic-simd256 rvv128 rvv256 rvv512 rvv1024 rvv2048 rvv4096 rvv8192 rvv16384 rvv32768 rvv65536
EXTRA_DIST = n1b.h n1f.h n2b.h n2f.h n2s.h q1b.h q1f.h t1b.h t1bu.h \
t1f.h t1fu.h t2b.h t2f.h t3b.h t3f.h ts.h codlist.mk simd.mk
12 changes: 12 additions & 0 deletions dft/simd/rvv16384/Makefile.am
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
SIMD_HEADER=simd-support/simd-rvv16384.h

include $(top_srcdir)/dft/simd/codlist.mk
include $(top_srcdir)/dft/simd/simd.mk

if HAVE_RVV

BUILT_SOURCES = $(EXTRA_DIST)
noinst_LTLIBRARIES = libdft_rvv16384_codelets.la
libdft_rvv16384_codelets_la_SOURCES = $(BUILT_SOURCES)

endif
12 changes: 12 additions & 0 deletions dft/simd/rvv2048/Makefile.am
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
SIMD_HEADER=simd-support/simd-rvv2048.h

include $(top_srcdir)/dft/simd/codlist.mk
include $(top_srcdir)/dft/simd/simd.mk

if HAVE_RVV

BUILT_SOURCES = $(EXTRA_DIST)
noinst_LTLIBRARIES = libdft_rvv2048_codelets.la
libdft_rvv2048_codelets_la_SOURCES = $(BUILT_SOURCES)

endif
12 changes: 12 additions & 0 deletions dft/simd/rvv32768/Makefile.am
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
SIMD_HEADER=simd-support/simd-rvv32768.h

include $(top_srcdir)/dft/simd/codlist.mk
include $(top_srcdir)/dft/simd/simd.mk

if HAVE_RVV

BUILT_SOURCES = $(EXTRA_DIST)
noinst_LTLIBRARIES = libdft_rvv32768_codelets.la
libdft_rvv32768_codelets_la_SOURCES = $(BUILT_SOURCES)

endif
12 changes: 12 additions & 0 deletions dft/simd/rvv4096/Makefile.am
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
SIMD_HEADER=simd-support/simd-rvv4096.h

include $(top_srcdir)/dft/simd/codlist.mk
include $(top_srcdir)/dft/simd/simd.mk

if HAVE_RVV

BUILT_SOURCES = $(EXTRA_DIST)
noinst_LTLIBRARIES = libdft_rvv4096_codelets.la
libdft_rvv4096_codelets_la_SOURCES = $(BUILT_SOURCES)

endif
12 changes: 12 additions & 0 deletions dft/simd/rvv65536/Makefile.am
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
SIMD_HEADER=simd-support/simd-rvv65536.h

include $(top_srcdir)/dft/simd/codlist.mk
include $(top_srcdir)/dft/simd/simd.mk

if HAVE_RVV

BUILT_SOURCES = $(EXTRA_DIST)
noinst_LTLIBRARIES = libdft_rvv65536_codelets.la
libdft_rvv65536_codelets_la_SOURCES = $(BUILT_SOURCES)

endif
12 changes: 12 additions & 0 deletions dft/simd/rvv8192/Makefile.am
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
SIMD_HEADER=simd-support/simd-rvv8192.h

include $(top_srcdir)/dft/simd/codlist.mk
include $(top_srcdir)/dft/simd/simd.mk

if HAVE_RVV

BUILT_SOURCES = $(EXTRA_DIST)
noinst_LTLIBRARIES = libdft_rvv8192_codelets.la
libdft_rvv8192_codelets_la_SOURCES = $(BUILT_SOURCES)

endif
2 changes: 1 addition & 1 deletion kernel/ifftw.h
Original file line number Diff line number Diff line change
Expand Up @@ -877,7 +877,7 @@ enum { TW_COS = 0, TW_SIN = 1, TW_CEXP = 2, TW_NEXT = 3,

typedef struct {
unsigned char op;
signed char v;
short v;
short i;
} tw_instr;

Expand Down
6 changes: 6 additions & 0 deletions rdft/codelet-rdft.h
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,12 @@ extern const solvtab X(solvtab_rdft_rvv128);
extern const solvtab X(solvtab_rdft_rvv256);
extern const solvtab X(solvtab_rdft_rvv512);
extern const solvtab X(solvtab_rdft_rvv1024);
extern const solvtab X(solvtab_rdft_rvv2048);
extern const solvtab X(solvtab_rdft_rvv4096);
extern const solvtab X(solvtab_rdft_rvv8192);
extern const solvtab X(solvtab_rdft_rvv16384);
extern const solvtab X(solvtab_rdft_rvv32768);
extern const solvtab X(solvtab_rdft_rvv65536);

/* real-input & output DFT-like codelets (DHT, etc.) */
typedef struct kr2r_desc_s kr2r_desc;
Expand Down
14 changes: 13 additions & 1 deletion rdft/conf.c
Original file line number Diff line number Diff line change
Expand Up @@ -103,13 +103,25 @@ void X(rdft_conf_standard)(planner *p)
X(solvtab_exec)(X(solvtab_rdft_generic_simd256), p);
#endif
#if HAVE_RVV
if (X(have_simd_rvv)(128))
if (X(have_simd_rvv)(128))
X(solvtab_exec)(X(solvtab_rdft_rvv128), p);
if (X(have_simd_rvv)(256))
X(solvtab_exec)(X(solvtab_rdft_rvv256), p);
if (X(have_simd_rvv)(512))
X(solvtab_exec)(X(solvtab_rdft_rvv512), p);
if (X(have_simd_rvv)(1024))
X(solvtab_exec)(X(solvtab_rdft_rvv1024), p);
if (X(have_simd_rvv)(2048))
X(solvtab_exec)(X(solvtab_rdft_rvv2048), p);
if (X(have_simd_rvv)(4096))
X(solvtab_exec)(X(solvtab_rdft_rvv4096), p);
if (X(have_simd_rvv)(8192))
X(solvtab_exec)(X(solvtab_rdft_rvv8192), p);
if (X(have_simd_rvv)(16384))
X(solvtab_exec)(X(solvtab_rdft_rvv16384), p);
if (X(have_simd_rvv)(32768))
X(solvtab_exec)(X(solvtab_rdft_rvv32768), p);
if (X(have_simd_rvv)(65536))
X(solvtab_exec)(X(solvtab_rdft_rvv65536), p);
#endif
}
2 changes: 1 addition & 1 deletion rdft/simd/Makefile.am
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@

AM_CPPFLAGS = -I $(top_srcdir)
SUBDIRS = common sse2 avx avx-128-fma avx2 avx2-128 avx512 kcvi altivec vsx neon generic-simd128 generic-simd256 rvv128 rvv256 rvv512 rvv1024
SUBDIRS = common sse2 avx avx-128-fma avx2 avx2-128 avx512 kcvi altivec vsx neon generic-simd128 generic-simd256 rvv128 rvv256 rvv512 rvv1024 rvv2048 rvv4096 rvv8192 rvv16384 rvv32768 rvv65536
EXTRA_DIST = hc2cbv.h hc2cfv.h codlist.mk simd.mk
12 changes: 12 additions & 0 deletions rdft/simd/rvv16384/Makefile.am
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
SIMD_HEADER=simd-support/simd-rvv16384.h

include $(top_srcdir)/rdft/simd/codlist.mk
include $(top_srcdir)/rdft/simd/simd.mk

if HAVE_RVV

noinst_LTLIBRARIES = librdft_rvv16384_codelets.la
BUILT_SOURCES = $(EXTRA_DIST)
librdft_rvv16384_codelets_la_SOURCES = $(BUILT_SOURCES)

endif
12 changes: 12 additions & 0 deletions rdft/simd/rvv2048/Makefile.am
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
SIMD_HEADER=simd-support/simd-rvv2048.h

include $(top_srcdir)/rdft/simd/codlist.mk
include $(top_srcdir)/rdft/simd/simd.mk

if HAVE_RVV

noinst_LTLIBRARIES = librdft_rvv2048_codelets.la
BUILT_SOURCES = $(EXTRA_DIST)
librdft_rvv2048_codelets_la_SOURCES = $(BUILT_SOURCES)

endif
12 changes: 12 additions & 0 deletions rdft/simd/rvv32768/Makefile.am
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
SIMD_HEADER=simd-support/simd-rvv32768.h

include $(top_srcdir)/rdft/simd/codlist.mk
include $(top_srcdir)/rdft/simd/simd.mk

if HAVE_RVV

noinst_LTLIBRARIES = librdft_rvv32768_codelets.la
BUILT_SOURCES = $(EXTRA_DIST)
librdft_rvv32768_codelets_la_SOURCES = $(BUILT_SOURCES)

endif
12 changes: 12 additions & 0 deletions rdft/simd/rvv4096/Makefile.am
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
SIMD_HEADER=simd-support/simd-rvv4096.h

include $(top_srcdir)/rdft/simd/codlist.mk
include $(top_srcdir)/rdft/simd/simd.mk

if HAVE_RVV

noinst_LTLIBRARIES = librdft_rvv4096_codelets.la
BUILT_SOURCES = $(EXTRA_DIST)
librdft_rvv4096_codelets_la_SOURCES = $(BUILT_SOURCES)

endif
12 changes: 12 additions & 0 deletions rdft/simd/rvv65536/Makefile.am
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
SIMD_HEADER=simd-support/simd-rvv65536.h

include $(top_srcdir)/rdft/simd/codlist.mk
include $(top_srcdir)/rdft/simd/simd.mk

if HAVE_RVV

noinst_LTLIBRARIES = librdft_rvv65536_codelets.la
BUILT_SOURCES = $(EXTRA_DIST)
librdft_rvv65536_codelets_la_SOURCES = $(BUILT_SOURCES)

endif
12 changes: 12 additions & 0 deletions rdft/simd/rvv8192/Makefile.am
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
SIMD_HEADER=simd-support/simd-rvv8192.h

include $(top_srcdir)/rdft/simd/codlist.mk
include $(top_srcdir)/rdft/simd/simd.mk

if HAVE_RVV

noinst_LTLIBRARIES = librdft_rvv8192_codelets.la
BUILT_SOURCES = $(EXTRA_DIST)
librdft_rvv8192_codelets_la_SOURCES = $(BUILT_SOURCES)

endif
3 changes: 2 additions & 1 deletion simd-support/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,5 @@ kcvi.c simd-kcvi.h \
altivec.c simd-altivec.h vsx.c simd-vsx.h \
neon.c simd-neon.h \
simd-generic128.h simd-generic256.h \
rvv.c simd-rvv.h simd-rvv128.h simd-rvv256.h simd-rvv512.h simd-rvv1024.h
rvv.c simd-rvv.h simd-rvv128.h simd-rvv256.h simd-rvv512.h simd-rvv1024.h \
simd-rvv2048.h simd-rvv4096.h simd-rvv8192.h simd-rvv16384.h simd-rvv32768.h simd-rvv65536.h vtw.h
Loading

0 comments on commit 4b98782

Please sign in to comment.