summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHonglin Zhu <zhuhonglin.zhl@alibaba-inc.com>2022-06-13 17:05:43 +0800
committerHonglin Zhu <zhuhonglin.zhl@alibaba-inc.com>2022-06-29 10:14:21 +0800
commit04593bb27c803d947a5901a1bc6e8ed57e452658 (patch)
tree223cd7ddeb4fbea4d8e32b26f49a041d4fe4c864
parent1fb42590773f8b9fcdb4733e82afc2cfd1fab86a (diff)
downloadopenblas-04593bb27c803d947a5901a1bc6e8ed57e452658.tar.gz
openblas-04593bb27c803d947a5901a1bc6e8ed57e452658.tar.bz2
openblas-04593bb27c803d947a5901a1bc6e8ed57e452658.zip
neoverse n2 sbgemm: init file
-rw-r--r--kernel/arm64/KERNEL.NEOVERSEN211
-rw-r--r--kernel/arm64/sbgemm_beta_neoversen2.c83
-rw-r--r--kernel/arm64/sbgemm_kernel_neoversen2.c34
-rw-r--r--kernel/arm64/sbgemm_ncopy_neoversen2.c33
-rw-r--r--kernel/arm64/sbgemm_tcopy_neoversen2.c33
5 files changed, 194 insertions, 0 deletions
diff --git a/kernel/arm64/KERNEL.NEOVERSEN2 b/kernel/arm64/KERNEL.NEOVERSEN2
index ea010db42..f880f9692 100644
--- a/kernel/arm64/KERNEL.NEOVERSEN2
+++ b/kernel/arm64/KERNEL.NEOVERSEN2
@@ -187,3 +187,14 @@ ZGEMMONCOPY = ../generic/zgemm_ncopy_$(ZGEMM_UNROLL_N).c
ZGEMMOTCOPY = ../generic/zgemm_tcopy_$(ZGEMM_UNROLL_N).c
ZGEMMONCOPYOBJ = zgemm_oncopy$(TSUFFIX).$(SUFFIX)
ZGEMMOTCOPYOBJ = zgemm_otcopy$(TSUFFIX).$(SUFFIX)
+
+SBGEMM_BETA = sbgemm_beta_neoversen2.c
+SBGEMMKERNEL = sbgemm_kernel_neoversen2.c
+SBGEMMINCOPY = sbgemm_ncopy_neoversen2.c
+SBGEMMITCOPY = sbgemm_tcopy_neoversen2.c
+SBGEMMONCOPY = sbgemm_ncopy_neoversen2.c
+SBGEMMOTCOPY = sbgemm_tcopy_neoversen2.c
+SBGEMMINCOPYOBJ = sbgemm_incopy$(TSUFFIX).$(SUFFIX)
+SBGEMMITCOPYOBJ = sbgemm_itcopy$(TSUFFIX).$(SUFFIX)
+SBGEMMONCOPYOBJ = sbgemm_oncopy$(TSUFFIX).$(SUFFIX)
+SBGEMMOTCOPYOBJ = sbgemm_otcopy$(TSUFFIX).$(SUFFIX)
diff --git a/kernel/arm64/sbgemm_beta_neoversen2.c b/kernel/arm64/sbgemm_beta_neoversen2.c
new file mode 100644
index 000000000..ab787bfc6
--- /dev/null
+++ b/kernel/arm64/sbgemm_beta_neoversen2.c
@@ -0,0 +1,83 @@
+/***************************************************************************
+ * Copyright (c) 2022, 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 OPENBLAS PROJECT 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.
+ * *****************************************************************************/
+
+#include "common.h"
+
+int CNAME(BLASLONG m, BLASLONG n, BLASLONG dummy1, FLOAT beta, IFLOAT *dummy2,
+ BLASLONG dummy3, IFLOAT *dummy4, BLASLONG dummy5, FLOAT *c,
+ BLASLONG ldc) {
+
+ BLASLONG i, j;
+ BLASLONG chunk, remain;
+ FLOAT *c_offset1, *c_offset;
+ c_offset = c;
+ chunk = m >> 3;
+ remain = m & 7;
+ if (beta == ZERO) {
+ for (j = n; j > 0; j--) {
+ c_offset1 = c_offset;
+ c_offset += ldc;
+ for (i = chunk; i > 0; i--) {
+ *(c_offset1 + 0) = ZERO;
+ *(c_offset1 + 1) = ZERO;
+ *(c_offset1 + 2) = ZERO;
+ *(c_offset1 + 3) = ZERO;
+ *(c_offset1 + 4) = ZERO;
+ *(c_offset1 + 5) = ZERO;
+ *(c_offset1 + 6) = ZERO;
+ *(c_offset1 + 7) = ZERO;
+ c_offset1 += 8;
+ }
+ for (i = remain; i > 0; i--) {
+ *c_offset1 = ZERO;
+ c_offset1++;
+ }
+ }
+ } else {
+ for (j = n; j > 0; j--) {
+ c_offset1 = c_offset;
+ c_offset += ldc;
+ for (i = chunk; i > 0; i--) {
+ *(c_offset1 + 0) *= beta;
+ *(c_offset1 + 1) *= beta;
+ *(c_offset1 + 2) *= beta;
+ *(c_offset1 + 3) *= beta;
+ *(c_offset1 + 4) *= beta;
+ *(c_offset1 + 5) *= beta;
+ *(c_offset1 + 6) *= beta;
+ *(c_offset1 + 7) *= beta;
+ c_offset1 += 8;
+ }
+ for (i = remain; i > 0; i--) {
+ *c_offset1 *= beta;
+ c_offset1++;
+ }
+ }
+ }
+ return 0;
+}; \ No newline at end of file
diff --git a/kernel/arm64/sbgemm_kernel_neoversen2.c b/kernel/arm64/sbgemm_kernel_neoversen2.c
new file mode 100644
index 000000000..f1022c9d6
--- /dev/null
+++ b/kernel/arm64/sbgemm_kernel_neoversen2.c
@@ -0,0 +1,34 @@
+/***************************************************************************
+ * Copyright (c) 2022, 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 OPENBLAS PROJECT 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.
+ * *****************************************************************************/
+
+#include "common.h"
+
+int CNAME(BLASLONG m, BLASLONG n, BLASLONG k, FLOAT alpha, IFLOAT *A, IFLOAT *B,
+ FLOAT *C, BLASLONG ldc) {
+ return 0;
+}
diff --git a/kernel/arm64/sbgemm_ncopy_neoversen2.c b/kernel/arm64/sbgemm_ncopy_neoversen2.c
new file mode 100644
index 000000000..608b8895c
--- /dev/null
+++ b/kernel/arm64/sbgemm_ncopy_neoversen2.c
@@ -0,0 +1,33 @@
+/***************************************************************************
+ * Copyright (c) 2022, 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 OPENBLAS PROJECT 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.
+ * *****************************************************************************/
+
+#include "common.h"
+
+int CNAME(BLASLONG m, BLASLONG n, IFLOAT *a, BLASLONG lda, IFLOAT *b) {
+ return 0;
+}
diff --git a/kernel/arm64/sbgemm_tcopy_neoversen2.c b/kernel/arm64/sbgemm_tcopy_neoversen2.c
new file mode 100644
index 000000000..608b8895c
--- /dev/null
+++ b/kernel/arm64/sbgemm_tcopy_neoversen2.c
@@ -0,0 +1,33 @@
+/***************************************************************************
+ * Copyright (c) 2022, 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 OPENBLAS PROJECT 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.
+ * *****************************************************************************/
+
+#include "common.h"
+
+int CNAME(BLASLONG m, BLASLONG n, IFLOAT *a, BLASLONG lda, IFLOAT *b) {
+ return 0;
+}