Rajalakshmi Srinivasaraghavan
7eb55504b1
RFC : Add half precision gemm for bfloat16 in OpenBLAS
...
This patch adds support for bfloat16 data type matrix multiplication kernel.
For architectures that don't support bfloat16, it is defined as unsigned short
(2 bytes). Default unroll sizes can be changed as per architecture as done for
SGEMM and for now 8 and 4 are used for M and N. Size of ncopy/tcopy can be
changed as per architecture requirement and for now, size 2 is used.
Added shgemm in kernel/power/KERNEL.POWER9 and tested in powerpc64le and
powerpc64. For reference, added a small test compare_sgemm_shgemm.c to compare
sgemm and shgemm output.
This patch does not cover OpenBLAS test, benchmark and lapack tests for shgemm.
Complex type implementation can be discussed and added once this is approved.
2020-04-14 14:55:08 -05:00
..
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2011-01-24 14:54:24 +00:00
2019-08-20 06:51:35 -05:00
2019-03-29 15:49:40 +00:00
2020-02-13 22:44:09 +01:00
2020-03-03 12:35:10 -06:00
2019-08-30 04:09:15 +00:00
2019-08-20 06:51:35 -05:00
2019-03-29 15:49:40 +00:00
2019-11-26 21:55:04 -07:00
2019-08-30 04:09:15 +00:00
2019-06-25 10:58:56 +02:00
2019-07-01 14:07:54 +00:00
2016-04-04 09:12:08 +02:00
2019-07-01 14:07:54 +00:00
2019-08-20 06:51:35 -05:00
2019-07-01 14:07:54 +00:00
2018-02-16 23:36:46 +00:00
2016-04-23 07:37:18 +02:00
2019-08-20 06:51:35 -05:00
2019-08-30 11:14:55 +00:00
2019-08-30 11:14:55 +00:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2019-08-20 06:51:35 -05:00
2019-08-20 06:51:35 -05:00
2019-03-29 15:49:40 +00:00
2019-06-25 10:58:56 +02:00
2016-04-04 09:12:08 +02:00
2019-08-20 06:51:35 -05:00
2019-08-20 06:51:35 -05:00
2019-03-29 15:49:40 +00:00
2019-08-20 06:51:35 -05:00
2019-03-29 15:49:40 +00:00
2019-08-20 06:51:35 -05:00
2019-03-29 15:49:40 +00:00
2019-08-20 06:51:35 -05:00
2019-03-29 15:49:40 +00:00
2016-03-01 07:33:56 +01:00
2019-06-25 10:58:56 +02:00
2019-06-04 07:11:30 +00:00
2016-05-17 14:45:27 +02:00
2019-03-29 15:49:40 +00:00
2019-08-20 06:51:35 -05:00
2019-03-29 15:49:40 +00:00
2018-02-18 01:30:17 +00:00
2016-04-29 12:52:47 +02:00
2019-08-20 06:51:35 -05:00
2018-02-16 23:36:46 +00:00
2016-05-17 14:45:27 +02:00
2019-08-20 06:51:35 -05:00
2019-08-20 06:51:35 -05:00
2019-08-29 23:22:23 +00:00
2019-12-09 17:54:49 +01:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2019-08-20 06:51:35 -05:00
2019-03-29 15:49:40 +00:00
2019-08-20 06:51:35 -05:00
2019-03-29 15:49:40 +00:00
2019-08-20 06:51:35 -05:00
2019-03-29 15:49:40 +00:00
2019-06-25 10:58:56 +02:00
2016-03-05 10:27:27 +01:00
2019-08-20 06:51:35 -05:00
2019-06-25 10:58:56 +02:00
2016-05-23 11:20:41 +02:00
2019-08-20 06:51:35 -05:00
2014-06-27 12:05:18 -07:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2016-03-01 07:33:56 +01:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2016-03-01 07:33:56 +01:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2019-09-22 22:35:22 +02:00
2020-03-03 12:35:10 -06:00
2019-05-01 19:36:22 +00:00
2020-02-13 18:38:43 +01:00
2020-03-03 12:35:10 -06:00
2019-05-01 19:36:22 +00:00
2019-12-09 17:54:49 +01:00
2019-12-09 17:54:49 +01:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2020-02-12 23:59:50 +01:00
2020-03-03 12:35:10 -06:00
2019-01-16 15:16:21 +00:00
2020-02-13 00:00:32 +01:00
2020-03-03 12:35:10 -06:00
2019-01-16 15:16:21 +00:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2019-12-09 17:54:49 +01:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2019-12-09 17:54:49 +01:00
2014-06-27 12:05:18 -07:00
2020-02-21 11:55:52 +01:00
2014-06-27 12:05:18 -07:00
2011-01-24 14:54:24 +00:00
2011-01-24 14:54:24 +00:00
2014-06-27 12:05:18 -07:00
2018-04-23 19:05:49 +02:00
2020-02-19 18:09:54 +01:00
2020-04-14 14:55:08 -05:00
2020-02-19 18:09:54 +01:00
2011-01-24 14:54:24 +00:00
2020-02-19 18:09:54 +01:00
2014-06-27 12:05:18 -07:00
2019-08-20 06:51:35 -05:00
2011-01-24 14:54:24 +00:00
2011-01-24 14:54:24 +00:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2019-08-20 06:51:35 -05:00
2019-03-29 15:49:40 +00:00
2019-01-16 15:16:21 +00:00
2014-06-27 12:05:18 -07:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-08-20 06:51:35 -05:00
2019-03-29 15:49:40 +00:00
2019-08-20 06:51:35 -05:00
2019-03-29 15:49:40 +00:00
2019-06-25 10:58:56 +02:00
2019-06-04 07:11:30 +00:00
2016-04-21 11:37:57 +02:00
2019-09-29 02:28:34 +00:00
2019-08-20 06:51:35 -05:00
2019-06-17 15:33:38 +00:00
2018-02-16 23:36:46 +00:00
2018-02-16 23:36:46 +00:00
2016-04-23 10:04:41 +02:00
2016-04-21 11:37:57 +02:00
2019-08-20 06:51:35 -05:00
2019-08-20 06:51:35 -05:00
2019-08-29 23:22:23 +00:00
2019-08-29 23:22:23 +00:00
2019-08-29 23:22:23 +00:00
2019-08-29 23:22:23 +00:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2019-08-20 06:51:35 -05:00
2019-03-29 15:49:40 +00:00
2019-08-20 06:51:35 -05:00
2019-03-29 15:49:40 +00:00
2019-08-20 06:51:35 -05:00
2019-03-29 15:49:40 +00:00
2011-01-24 14:54:24 +00:00
2019-06-25 10:58:56 +02:00
2016-04-02 17:16:36 +02:00
2019-08-20 06:51:35 -05:00
2019-03-30 22:23:42 +01:00
2014-06-27 12:05:18 -07:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2019-08-20 06:51:35 -05:00
2014-06-27 12:05:18 -07:00
2019-03-29 15:49:40 +00:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2019-08-20 06:51:35 -05:00
2019-06-25 10:58:56 +02:00
2019-03-29 15:49:40 +00:00
2019-06-25 10:58:56 +02:00
2014-06-27 12:05:18 -07:00
2019-08-20 06:51:35 -05:00
2019-03-29 15:49:40 +00:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2019-08-20 06:51:35 -05:00
2014-06-27 12:05:18 -07:00
2019-03-29 15:49:40 +00:00
2014-06-27 12:05:18 -07:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2016-04-22 13:07:12 +02:00
2019-07-01 14:07:54 +00:00
2019-08-20 06:51:35 -05:00
2019-06-05 20:07:16 +00:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2018-02-16 23:36:46 +00:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2016-04-22 13:07:12 +02:00
2019-08-20 06:51:35 -05:00
2019-08-29 23:22:23 +00:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-08-29 23:22:23 +00:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2019-08-20 06:51:35 -05:00
2014-06-27 12:05:18 -07:00
2014-06-27 12:05:18 -07:00
2019-08-20 06:51:35 -05:00
2019-06-25 10:58:56 +02:00
2019-03-29 15:49:40 +00:00
2019-06-25 10:58:56 +02:00
2019-03-30 22:23:42 +01:00
2014-06-27 12:05:18 -07:00
2019-08-20 06:51:35 -05:00
2019-03-29 15:49:40 +00:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2016-03-05 10:27:27 +01:00
2019-08-20 06:51:35 -05:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00
2019-06-25 10:58:56 +02:00