Author | SHA1 | Message | Date |
---|---|---|---|
|
0b08a4d8e6
|
Revert "Add basic support for the (mostly x86_64 compatible) Elbrus E2000 architecture" | 3 years ago |
@@ -204,6 +204,3 @@ In chronological order: | |||
* [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-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: | |||
LOONGSON3R5 | |||
12. Elbrus E2000: | |||
E2K | |||
@@ -84,7 +84,6 @@ $os = Haiku if ($data =~ /OS_HAIKU/); | |||
$architecture = x86 if ($data =~ /ARCH_X86/); | |||
$architecture = x86_64 if ($data =~ /ARCH_X86_64/); | |||
$architecture = e2k if ($data =~ /ARCH_E2K/); | |||
$architecture = power if ($data =~ /ARCH_POWER/); | |||
$architecture = mips if ($data =~ /ARCH_MIPS/); | |||
$architecture = mips64 if ($data =~ /ARCH_MIPS64/); | |||
@@ -125,11 +124,6 @@ if ($architecture eq "zarch") { | |||
$binary = 64; | |||
} | |||
if ($architecture eq "e2k") { | |||
$defined = 1; | |||
$binary = 64; | |||
} | |||
if ($architecture eq "alpha") { | |||
$defined = 1; | |||
$binary = 64; | |||
@@ -229,7 +223,6 @@ if (($architecture eq "mips") || ($architecture eq "mips64")) { | |||
$architecture = x86 if ($data =~ /ARCH_X86/); | |||
$architecture = x86_64 if ($data =~ /ARCH_X86_64/); | |||
$architecture = e2k if ($data =~ /ARCH_E2K/); | |||
$architecture = power if ($data =~ /ARCH_POWER/); | |||
$architecture = mips if ($data =~ /ARCH_MIPS/); | |||
$architecture = mips64 if ($data =~ /ARCH_MIPS64/); | |||
@@ -474,10 +474,6 @@ please https://github.com/xianyi/OpenBLAS/issues/246 | |||
#include "common_loongarch64.h" | |||
#endif | |||
#ifdef ARCH_E2K | |||
#include "common_e2k.h" | |||
#endif | |||
#ifndef ASSEMBLER | |||
#ifdef OS_WINDOWSSTORE | |||
typedef char env_var_t[MAX_PATH]; | |||
@@ -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 | |||
#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_b; | |||
extern BLASLONG sbgemm_p; | |||
@@ -165,7 +165,3 @@ ARCH_LOONGARCH64 | |||
HAVE_C11 | |||
#endif | |||
#if defined(__e2k__) | |||
ARCH_E2K | |||
#endif | |||
@@ -1536,17 +1536,6 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||
#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 | |||
#ifdef USER_TARGET | |||
@@ -617,10 +617,6 @@ $(KDIR)zgemm_beta$(TSUFFIX).$(SUFFIX) : $(KERNELDIR)/$(ZGEMM_BETA) | |||
$(KDIR)xgemm_beta$(TSUFFIX).$(SUFFIX) : $(KERNELDIR)/$(XGEMM_BETA) | |||
$(CC) $(CFLAGS) -c -DXDOUBLE -DCOMPLEX $< -o $@ | |||
ifeq ($(ARCH), E2K) | |||
USE_TRMM = 1 | |||
endif | |||
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 :: |