Revert "Add basic support for the (mostly x86_64 compatible) Elbrus E2000 architecture"
This commit is contained in:
parent
1ef97c470c
commit
0b08a4d8e6
|
@ -204,6 +204,3 @@ In chronological order:
|
||||||
* [2021-11-12] SVE kernels for SGEMM, STRMM and corresponding SVE copy functions
|
* [2021-11-12] SVE kernels for SGEMM, STRMM and corresponding SVE copy functions
|
||||||
* [2022-01-06] SVE kernels for CGEMM, ZGEMM, CTRMM, ZTRMM and corresponding SVE copy functions
|
* [2022-01-06] SVE kernels for CGEMM, ZGEMM, CTRMM, ZTRMM and corresponding SVE copy functions
|
||||||
* [2022-01-18] SVE kernels and copy functions for TRSM
|
* [2022-01-18] SVE kernels and copy functions for TRSM
|
||||||
|
|
||||||
* Ilya Kurdyukov <https://github.com/ilyakurdyukov>
|
|
||||||
* [2021-02-21] Add basic support for the Elbrus E2000 architecture
|
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
COPT = -Wall -O2 # -DGEMMTEST
|
|
|
@ -115,7 +115,3 @@ C910V
|
||||||
|
|
||||||
11.LOONGARCH64:
|
11.LOONGARCH64:
|
||||||
LOONGSON3R5
|
LOONGSON3R5
|
||||||
|
|
||||||
12. Elbrus E2000:
|
|
||||||
E2K
|
|
||||||
|
|
||||||
|
|
7
c_check
7
c_check
|
@ -84,7 +84,6 @@ $os = Haiku if ($data =~ /OS_HAIKU/);
|
||||||
|
|
||||||
$architecture = x86 if ($data =~ /ARCH_X86/);
|
$architecture = x86 if ($data =~ /ARCH_X86/);
|
||||||
$architecture = x86_64 if ($data =~ /ARCH_X86_64/);
|
$architecture = x86_64 if ($data =~ /ARCH_X86_64/);
|
||||||
$architecture = e2k if ($data =~ /ARCH_E2K/);
|
|
||||||
$architecture = power if ($data =~ /ARCH_POWER/);
|
$architecture = power if ($data =~ /ARCH_POWER/);
|
||||||
$architecture = mips if ($data =~ /ARCH_MIPS/);
|
$architecture = mips if ($data =~ /ARCH_MIPS/);
|
||||||
$architecture = mips64 if ($data =~ /ARCH_MIPS64/);
|
$architecture = mips64 if ($data =~ /ARCH_MIPS64/);
|
||||||
|
@ -125,11 +124,6 @@ if ($architecture eq "zarch") {
|
||||||
$binary = 64;
|
$binary = 64;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($architecture eq "e2k") {
|
|
||||||
$defined = 1;
|
|
||||||
$binary = 64;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($architecture eq "alpha") {
|
if ($architecture eq "alpha") {
|
||||||
$defined = 1;
|
$defined = 1;
|
||||||
$binary = 64;
|
$binary = 64;
|
||||||
|
@ -229,7 +223,6 @@ if (($architecture eq "mips") || ($architecture eq "mips64")) {
|
||||||
|
|
||||||
$architecture = x86 if ($data =~ /ARCH_X86/);
|
$architecture = x86 if ($data =~ /ARCH_X86/);
|
||||||
$architecture = x86_64 if ($data =~ /ARCH_X86_64/);
|
$architecture = x86_64 if ($data =~ /ARCH_X86_64/);
|
||||||
$architecture = e2k if ($data =~ /ARCH_E2K/);
|
|
||||||
$architecture = power if ($data =~ /ARCH_POWER/);
|
$architecture = power if ($data =~ /ARCH_POWER/);
|
||||||
$architecture = mips if ($data =~ /ARCH_MIPS/);
|
$architecture = mips if ($data =~ /ARCH_MIPS/);
|
||||||
$architecture = mips64 if ($data =~ /ARCH_MIPS64/);
|
$architecture = mips64 if ($data =~ /ARCH_MIPS64/);
|
||||||
|
|
4
common.h
4
common.h
|
@ -474,10 +474,6 @@ please https://github.com/xianyi/OpenBLAS/issues/246
|
||||||
#include "common_loongarch64.h"
|
#include "common_loongarch64.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef ARCH_E2K
|
|
||||||
#include "common_e2k.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef ASSEMBLER
|
#ifndef ASSEMBLER
|
||||||
#ifdef OS_WINDOWSSTORE
|
#ifdef OS_WINDOWSSTORE
|
||||||
typedef char env_var_t[MAX_PATH];
|
typedef char env_var_t[MAX_PATH];
|
||||||
|
|
64
common_e2k.h
64
common_e2k.h
|
@ -1,64 +0,0 @@
|
||||||
/*****************************************************************************
|
|
||||||
Copyright (c) 2011-2016, The OpenBLAS Project
|
|
||||||
All rights reserved.
|
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
|
||||||
modification, are permitted provided that the following conditions are
|
|
||||||
met:
|
|
||||||
|
|
||||||
1. Redistributions of source code must retain the above copyright
|
|
||||||
notice, this list of conditions and the following disclaimer.
|
|
||||||
|
|
||||||
2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
notice, this list of conditions and the following disclaimer in
|
|
||||||
the documentation and/or other materials provided with the
|
|
||||||
distribution.
|
|
||||||
3. Neither the name of the OpenBLAS project nor the names of
|
|
||||||
its contributors may be used to endorse or promote products
|
|
||||||
derived from this software without specific prior written
|
|
||||||
permission.
|
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
||||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
||||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
||||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
|
|
||||||
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
**********************************************************************************/
|
|
||||||
|
|
||||||
#ifndef COMMON_E2K
|
|
||||||
#define COMMON_E2K
|
|
||||||
|
|
||||||
#ifdef ASSEMBLER
|
|
||||||
#error
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define MB do { __asm__ __volatile__("": : :"memory"); } while (0)
|
|
||||||
#define WMB do { __asm__ __volatile__("": : :"memory"); } while (0)
|
|
||||||
#define RMB
|
|
||||||
|
|
||||||
#define INLINE __attribute__((__always_inline__)) inline
|
|
||||||
|
|
||||||
static inline int blas_quickdivide(blasint x, blasint y) {
|
|
||||||
return x / y;
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifndef PAGESIZE
|
|
||||||
#define PAGESIZE ( 4 << 10)
|
|
||||||
#endif
|
|
||||||
#define HUGE_PAGESIZE ( 2 << 20)
|
|
||||||
|
|
||||||
#ifndef BUFFERSIZE
|
|
||||||
#define BUFFER_SIZE (32 << 20)
|
|
||||||
#else
|
|
||||||
#define BUFFER_SIZE (32 << BUFFERSIZE)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define SEEK_ADDRESS
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
|
@ -2611,7 +2611,7 @@
|
||||||
|
|
||||||
#ifndef ASSEMBLER
|
#ifndef ASSEMBLER
|
||||||
#if defined(ARCH_X86) || defined(ARCH_X86_64) || defined(ARCH_IA64) || defined(ARCH_MIPS64) || defined(ARCH_ARM64)\
|
#if defined(ARCH_X86) || defined(ARCH_X86_64) || defined(ARCH_IA64) || defined(ARCH_MIPS64) || defined(ARCH_ARM64)\
|
||||||
|| defined(ARCH_LOONGARCH64) || defined(ARCH_E2K)
|
|| defined(ARCH_LOONGARCH64)
|
||||||
extern BLASLONG gemm_offset_a;
|
extern BLASLONG gemm_offset_a;
|
||||||
extern BLASLONG gemm_offset_b;
|
extern BLASLONG gemm_offset_b;
|
||||||
extern BLASLONG sbgemm_p;
|
extern BLASLONG sbgemm_p;
|
||||||
|
|
4
ctest.c
4
ctest.c
|
@ -165,7 +165,3 @@ ARCH_LOONGARCH64
|
||||||
HAVE_C11
|
HAVE_C11
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(__e2k__)
|
|
||||||
ARCH_E2K
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
11
getarch.c
11
getarch.c
|
@ -1536,17 +1536,6 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#if defined(FORCE_E2K) || defined(__e2k__)
|
|
||||||
#define FORCE
|
|
||||||
#define ARCHITECTURE "E2K"
|
|
||||||
#define ARCHCONFIG "-DGENERIC " \
|
|
||||||
"-DL1_DATA_SIZE=16384 -DL1_DATA_LINESIZE=64 " \
|
|
||||||
"-DL2_SIZE=524288 -DL2_LINESIZE=64 " \
|
|
||||||
"-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=8 "
|
|
||||||
#define LIBNAME "generic"
|
|
||||||
#define CORENAME "generic"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef FORCE
|
#ifndef FORCE
|
||||||
|
|
||||||
#ifdef USER_TARGET
|
#ifdef USER_TARGET
|
||||||
|
|
|
@ -617,10 +617,6 @@ $(KDIR)zgemm_beta$(TSUFFIX).$(SUFFIX) : $(KERNELDIR)/$(ZGEMM_BETA)
|
||||||
$(KDIR)xgemm_beta$(TSUFFIX).$(SUFFIX) : $(KERNELDIR)/$(XGEMM_BETA)
|
$(KDIR)xgemm_beta$(TSUFFIX).$(SUFFIX) : $(KERNELDIR)/$(XGEMM_BETA)
|
||||||
$(CC) $(CFLAGS) -c -DXDOUBLE -DCOMPLEX $< -o $@
|
$(CC) $(CFLAGS) -c -DXDOUBLE -DCOMPLEX $< -o $@
|
||||||
|
|
||||||
ifeq ($(ARCH), E2K)
|
|
||||||
USE_TRMM = 1
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
ifeq ($(BUILD_BFLOAT16), 1)
|
ifeq ($(BUILD_BFLOAT16), 1)
|
||||||
|
|
||||||
|
|
|
@ -1,149 +0,0 @@
|
||||||
SAMAXKERNEL = ../arm/amax.c
|
|
||||||
DAMAXKERNEL = ../arm/amax.c
|
|
||||||
CAMAXKERNEL = ../arm/zamax.c
|
|
||||||
ZAMAXKERNEL = ../arm/zamax.c
|
|
||||||
|
|
||||||
SAMINKERNEL = ../arm/amin.c
|
|
||||||
DAMINKERNEL = ../arm/amin.c
|
|
||||||
CAMINKERNEL = ../arm/zamin.c
|
|
||||||
ZAMINKERNEL = ../arm/zamin.c
|
|
||||||
|
|
||||||
SMAXKERNEL = ../arm/max.c
|
|
||||||
DMAXKERNEL = ../arm/max.c
|
|
||||||
|
|
||||||
SMINKERNEL = ../arm/min.c
|
|
||||||
DMINKERNEL = ../arm/min.c
|
|
||||||
|
|
||||||
ISAMAXKERNEL = ../arm/iamax.c
|
|
||||||
IDAMAXKERNEL = ../arm/iamax.c
|
|
||||||
ICAMAXKERNEL = ../arm/izamax.c
|
|
||||||
IZAMAXKERNEL = ../arm/izamax.c
|
|
||||||
|
|
||||||
ISAMINKERNEL = ../arm/iamin.c
|
|
||||||
IDAMINKERNEL = ../arm/iamin.c
|
|
||||||
ICAMINKERNEL = ../arm/izamin.c
|
|
||||||
IZAMINKERNEL = ../arm/izamin.c
|
|
||||||
|
|
||||||
ISMAXKERNEL = ../arm/imax.c
|
|
||||||
IDMAXKERNEL = ../arm/imax.c
|
|
||||||
|
|
||||||
ISMINKERNEL = ../arm/imin.c
|
|
||||||
IDMINKERNEL = ../arm/imin.c
|
|
||||||
|
|
||||||
SASUMKERNEL = ../arm/asum.c
|
|
||||||
DASUMKERNEL = ../arm/asum.c
|
|
||||||
CASUMKERNEL = ../arm/zasum.c
|
|
||||||
ZASUMKERNEL = ../arm/zasum.c
|
|
||||||
|
|
||||||
SSUMKERNEL = ../arm/sum.c
|
|
||||||
DSUMKERNEL = ../arm/sum.c
|
|
||||||
CSUMKERNEL = ../arm/zsum.c
|
|
||||||
ZSUMKERNEL = ../arm/zsum.c
|
|
||||||
|
|
||||||
SAXPYKERNEL = ../arm/axpy.c
|
|
||||||
DAXPYKERNEL = ../arm/axpy.c
|
|
||||||
CAXPYKERNEL = ../arm/zaxpy.c
|
|
||||||
ZAXPYKERNEL = ../arm/zaxpy.c
|
|
||||||
|
|
||||||
SCOPYKERNEL = ../arm/copy.c
|
|
||||||
DCOPYKERNEL = ../arm/copy.c
|
|
||||||
CCOPYKERNEL = ../arm/zcopy.c
|
|
||||||
ZCOPYKERNEL = ../arm/zcopy.c
|
|
||||||
|
|
||||||
SDOTKERNEL = ../arm/dot.c
|
|
||||||
DDOTKERNEL = ../arm/dot.c
|
|
||||||
CDOTKERNEL = ../arm/zdot.c
|
|
||||||
ZDOTKERNEL = ../arm/zdot.c
|
|
||||||
DSDOTKERNEL = ../generic/dot.c
|
|
||||||
|
|
||||||
SNRM2KERNEL = ../arm/nrm2.c
|
|
||||||
DNRM2KERNEL = ../arm/nrm2.c
|
|
||||||
CNRM2KERNEL = ../arm/znrm2.c
|
|
||||||
ZNRM2KERNEL = ../arm/znrm2.c
|
|
||||||
|
|
||||||
SROTKERNEL = ../arm/rot.c
|
|
||||||
DROTKERNEL = ../arm/rot.c
|
|
||||||
CROTKERNEL = ../arm/zrot.c
|
|
||||||
ZROTKERNEL = ../arm/zrot.c
|
|
||||||
|
|
||||||
SSCALKERNEL = ../arm/scal.c
|
|
||||||
DSCALKERNEL = ../arm/scal.c
|
|
||||||
CSCALKERNEL = ../arm/zscal.c
|
|
||||||
ZSCALKERNEL = ../arm/zscal.c
|
|
||||||
|
|
||||||
SSWAPKERNEL = ../arm/swap.c
|
|
||||||
DSWAPKERNEL = ../arm/swap.c
|
|
||||||
CSWAPKERNEL = ../arm/zswap.c
|
|
||||||
ZSWAPKERNEL = ../arm/zswap.c
|
|
||||||
|
|
||||||
SGEMVNKERNEL = ../arm/gemv_n.c
|
|
||||||
DGEMVNKERNEL = ../arm/gemv_n.c
|
|
||||||
CGEMVNKERNEL = ../arm/zgemv_n.c
|
|
||||||
ZGEMVNKERNEL = ../arm/zgemv_n.c
|
|
||||||
|
|
||||||
SGEMVTKERNEL = ../arm/gemv_t.c
|
|
||||||
DGEMVTKERNEL = ../arm/gemv_t.c
|
|
||||||
CGEMVTKERNEL = ../arm/zgemv_t.c
|
|
||||||
ZGEMVTKERNEL = ../arm/zgemv_t.c
|
|
||||||
|
|
||||||
STRMMKERNEL = ../generic/trmmkernel_2x2.c
|
|
||||||
DTRMMKERNEL = ../generic/trmmkernel_2x2.c
|
|
||||||
CTRMMKERNEL = ../generic/ztrmmkernel_2x2.c
|
|
||||||
ZTRMMKERNEL = ../generic/ztrmmkernel_2x2.c
|
|
||||||
|
|
||||||
SGEMMKERNEL = ../generic/gemmkernel_2x2.c
|
|
||||||
SGEMMONCOPY = ../generic/gemm_ncopy_2.c
|
|
||||||
SGEMMOTCOPY = ../generic/gemm_tcopy_2.c
|
|
||||||
SGEMMONCOPYOBJ = sgemm_oncopy$(TSUFFIX).$(SUFFIX)
|
|
||||||
SGEMMOTCOPYOBJ = sgemm_otcopy$(TSUFFIX).$(SUFFIX)
|
|
||||||
|
|
||||||
DGEMMKERNEL = ../generic/gemmkernel_2x2.c
|
|
||||||
DGEMMONCOPY = ../generic/gemm_ncopy_2.c
|
|
||||||
DGEMMOTCOPY = ../generic/gemm_tcopy_2.c
|
|
||||||
DGEMMONCOPYOBJ = dgemm_oncopy$(TSUFFIX).$(SUFFIX)
|
|
||||||
DGEMMOTCOPYOBJ = dgemm_otcopy$(TSUFFIX).$(SUFFIX)
|
|
||||||
|
|
||||||
CGEMMKERNEL = ../generic/zgemmkernel_2x2.c
|
|
||||||
CGEMMONCOPY = ../generic/zgemm_ncopy_2.c
|
|
||||||
CGEMMOTCOPY = ../generic/zgemm_tcopy_2.c
|
|
||||||
CGEMMONCOPYOBJ = cgemm_oncopy$(TSUFFIX).$(SUFFIX)
|
|
||||||
CGEMMOTCOPYOBJ = cgemm_otcopy$(TSUFFIX).$(SUFFIX)
|
|
||||||
|
|
||||||
ZGEMMKERNEL = ../generic/zgemmkernel_2x2.c
|
|
||||||
ZGEMMONCOPY = ../generic/zgemm_ncopy_2.c
|
|
||||||
ZGEMMOTCOPY = ../generic/zgemm_tcopy_2.c
|
|
||||||
ZGEMMONCOPYOBJ = zgemm_oncopy$(TSUFFIX).$(SUFFIX)
|
|
||||||
ZGEMMOTCOPYOBJ = zgemm_otcopy$(TSUFFIX).$(SUFFIX)
|
|
||||||
|
|
||||||
STRSMKERNEL_LN = ../generic/trsm_kernel_LN.c
|
|
||||||
STRSMKERNEL_LT = ../generic/trsm_kernel_LT.c
|
|
||||||
STRSMKERNEL_RN = ../generic/trsm_kernel_RN.c
|
|
||||||
STRSMKERNEL_RT = ../generic/trsm_kernel_RT.c
|
|
||||||
|
|
||||||
DTRSMKERNEL_LN = ../generic/trsm_kernel_LN.c
|
|
||||||
DTRSMKERNEL_LT = ../generic/trsm_kernel_LT.c
|
|
||||||
DTRSMKERNEL_RN = ../generic/trsm_kernel_RN.c
|
|
||||||
DTRSMKERNEL_RT = ../generic/trsm_kernel_RT.c
|
|
||||||
|
|
||||||
CTRSMKERNEL_LN = ../generic/trsm_kernel_LN.c
|
|
||||||
CTRSMKERNEL_LT = ../generic/trsm_kernel_LT.c
|
|
||||||
CTRSMKERNEL_RN = ../generic/trsm_kernel_RN.c
|
|
||||||
CTRSMKERNEL_RT = ../generic/trsm_kernel_RT.c
|
|
||||||
|
|
||||||
ZTRSMKERNEL_LN = ../generic/trsm_kernel_LN.c
|
|
||||||
ZTRSMKERNEL_LT = ../generic/trsm_kernel_LT.c
|
|
||||||
ZTRSMKERNEL_RN = ../generic/trsm_kernel_RN.c
|
|
||||||
ZTRSMKERNEL_RT = ../generic/trsm_kernel_RT.c
|
|
||||||
|
|
||||||
|
|
||||||
SCABS_KERNEL = ../generic/cabs.c
|
|
||||||
DCABS_KERNEL = ../generic/cabs.c
|
|
||||||
QCABS_KERNEL = ../generic/cabs.c
|
|
||||||
LSAME_KERNEL = ../generic/lsame.c
|
|
||||||
|
|
||||||
SGEMM_BETA = ../generic/gemm_beta.c
|
|
||||||
DGEMM_BETA = ../generic/gemm_beta.c
|
|
||||||
CGEMM_BETA = ../generic/zgemm_beta.c
|
|
||||||
ZGEMM_BETA = ../generic/zgemm_beta.c
|
|
||||||
|
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
clean ::
|
|
Loading…
Reference in New Issue