From 288d1a3f6e44562702cfd780ed0a0f5536035a35 Mon Sep 17 00:00:00 2001 From: Martin Kroeker <martin@ruby.chemie.uni-freiburg.de> Date: Sun, 25 Feb 2018 19:45:16 +0100 Subject: [PATCH 1/5] Use dot.S also for DSDOT on ARMV8 --- kernel/arm64/KERNEL.ARMV8 | 1 + 1 file changed, 1 insertion(+) diff --git a/kernel/arm64/KERNEL.ARMV8 b/kernel/arm64/KERNEL.ARMV8 index 05c7eeef9b..d057546280 100644 --- a/kernel/arm64/KERNEL.ARMV8 +++ b/kernel/arm64/KERNEL.ARMV8 @@ -49,6 +49,7 @@ SDOTKERNEL = dot.S DDOTKERNEL = dot.S CDOTKERNEL = zdot.S ZDOTKERNEL = zdot.S +DSDOTKERNEL = dot.S SNRM2KERNEL = nrm2.S DNRM2KERNEL = nrm2.S From c9d408064add1fe605ed055118e36d0158582737 Mon Sep 17 00:00:00 2001 From: Martin Kroeker <martin@ruby.chemie.uni-freiburg.de> Date: Sun, 25 Feb 2018 19:48:09 +0100 Subject: [PATCH 2/5] Use dot.S also for DSDOT on CORTEXA57 --- kernel/arm64/KERNEL.CORTEXA57 | 1 + 1 file changed, 1 insertion(+) diff --git a/kernel/arm64/KERNEL.CORTEXA57 b/kernel/arm64/KERNEL.CORTEXA57 index 2bf88867e7..371e488cdb 100644 --- a/kernel/arm64/KERNEL.CORTEXA57 +++ b/kernel/arm64/KERNEL.CORTEXA57 @@ -29,6 +29,7 @@ SDOTKERNEL = dot.S DDOTKERNEL = dot.S CDOTKERNEL = zdot.S ZDOTKERNEL = zdot.S +DSDOTKERNEL = dot.S SNRM2KERNEL = nrm2.S DNRM2KERNEL = nrm2.S From e207107150d7f6affc94f8da8eec26b35682c507 Mon Sep 17 00:00:00 2001 From: Martin Kroeker <martin@ruby.chemie.uni-freiburg.de> Date: Sun, 25 Feb 2018 19:51:25 +0100 Subject: [PATCH 3/5] Use generic/dot.c for DSDOT on z13 The implementation in arm/dot.c has lower precision, as shown by the utest for dsdot. --- kernel/zarch/KERNEL.Z13 | 1 + 1 file changed, 1 insertion(+) diff --git a/kernel/zarch/KERNEL.Z13 b/kernel/zarch/KERNEL.Z13 index 8e5c3706a2..add628bfe1 100644 --- a/kernel/zarch/KERNEL.Z13 +++ b/kernel/zarch/KERNEL.Z13 @@ -49,6 +49,7 @@ SDOTKERNEL = ../arm/dot.c DDOTKERNEL = ddot.c CDOTKERNEL = ../arm/zdot.c ZDOTKERNEL = zdot.c +DSDOTKERNEL = ../generic/dot.c SNRM2KERNEL = ../arm/nrm2.c DNRM2KERNEL = ../arm/nrm2.c From 58f236ad730fbb59ce59c95dd19a6f371ea885f9 Mon Sep 17 00:00:00 2001 From: Martin Kroeker <martin@ruby.chemie.uni-freiburg.de> Date: Sun, 25 Feb 2018 19:52:14 +0100 Subject: [PATCH 4/5] Use generic/dot.c for DSDOT on zarch --- kernel/zarch/KERNEL.ZARCH_GENERIC | 1 + 1 file changed, 1 insertion(+) diff --git a/kernel/zarch/KERNEL.ZARCH_GENERIC b/kernel/zarch/KERNEL.ZARCH_GENERIC index d80f84e711..848ee9b548 100644 --- a/kernel/zarch/KERNEL.ZARCH_GENERIC +++ b/kernel/zarch/KERNEL.ZARCH_GENERIC @@ -49,6 +49,7 @@ 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 From 6e70287776b6679f27f92912f940c6a4632346da Mon Sep 17 00:00:00 2001 From: Martin Kroeker <martin@ruby.chemie.uni-freiburg.de> Date: Sun, 25 Feb 2018 19:57:23 +0100 Subject: [PATCH 5/5] Use generic/dot.c for DSDOT on ARMV5 and above The default arm/dot.c is less precise when used for DSDOT, as shown by utest --- kernel/arm/KERNEL.ARMV5 | 1 + 1 file changed, 1 insertion(+) diff --git a/kernel/arm/KERNEL.ARMV5 b/kernel/arm/KERNEL.ARMV5 index 27157dad1c..10808e2d93 100644 --- a/kernel/arm/KERNEL.ARMV5 +++ b/kernel/arm/KERNEL.ARMV5 @@ -49,6 +49,7 @@ 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