POWER: Enable bfloat16 kernels by default
authorRajalakshmi Srinivasaraghavan <rajis@linux.ibm.com>
Thu, 28 Jul 2022 12:43:53 +0000 (07:43 -0500)
committerRajalakshmi Srinivasaraghavan <rajis@linux.ibm.com>
Thu, 28 Jul 2022 12:43:53 +0000 (07:43 -0500)
This patch enables bfloat16 kernels by default for POWER processors.
Tested on Linux POWER8, POWER9, POWER10 and AIX POWER10 systems.

Makefile.system
test/compare_sgemm_sbgemm.c

index 5919be8..e50d84f 100644 (file)
@@ -263,6 +263,7 @@ ifeq ($(ARCH), x86_64)
 SMALL_MATRIX_OPT = 1
 else ifeq ($(ARCH), power)
 SMALL_MATRIX_OPT = 1
+BUILD_BFLOAT16 = 1
 endif
 ifeq ($(SMALL_MATRIX_OPT), 1)
 CCOMMON_OPT += -DSMALL_MATRIX_OPT
index 3d4eb25..a2c358c 100644 (file)
@@ -51,9 +51,15 @@ typedef union
   float v;
   struct
   {
+#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
+    uint32_t s:1;
+    uint32_t e:8;
+    uint32_t m:23;
+#else
     uint32_t m:23;
     uint32_t e:8;
     uint32_t s:1;
+#endif
   } bits;
 } float32_bits;