Marat Dukhan | f948068 | 2020-07-31 14:50:24 -0700 | [diff] [blame] | 1 | #!/bin/sh |
| 2 | # Copyright 2020 Google LLC |
| 3 | # |
| 4 | # This source code is licensed under the BSD-style license found in the |
| 5 | # LICENSE file in the root directory of this source tree. |
| 6 | |
Marat Dukhan | 27203da | 2020-08-05 15:19:03 -0700 | [diff] [blame] | 7 | ################################## WAsm SIMD ################################## |
Marat Dukhan | ef4ce31 | 2020-09-10 12:29:08 -0700 | [diff] [blame^] | 8 | ### C8 micro-kernels |
Marat Dukhan | 27203da | 2020-08-05 15:19:03 -0700 | [diff] [blame] | 9 | tools/xngen src/qs8-igemm/MRx4c8-minmax-wasmsimd.c.in -D MR=1 -D VARIANT=LD64 -o src/qs8-igemm/gen/1x4c8-minmax-wasmsimd-ld64.c |
| 10 | tools/xngen src/qs8-igemm/MRx4c8-minmax-wasmsimd.c.in -D MR=2 -D VARIANT=LD64 -o src/qs8-igemm/gen/2x4c8-minmax-wasmsimd-ld64.c |
| 11 | tools/xngen src/qs8-igemm/MRx4c8-minmax-wasmsimd.c.in -D MR=3 -D VARIANT=LD64 -o src/qs8-igemm/gen/3x4c8-minmax-wasmsimd-ld64.c |
| 12 | |
| 13 | tools/xngen src/qs8-igemm/MRx4c8-minmax-wasmsimd.c.in -D MR=1 -D VARIANT=LD128 -o src/qs8-igemm/gen/1x4c8-minmax-wasmsimd-ld128.c |
| 14 | tools/xngen src/qs8-igemm/MRx4c8-minmax-wasmsimd.c.in -D MR=2 -D VARIANT=LD128 -o src/qs8-igemm/gen/2x4c8-minmax-wasmsimd-ld128.c |
| 15 | tools/xngen src/qs8-igemm/MRx4c8-minmax-wasmsimd.c.in -D MR=3 -D VARIANT=LD128 -o src/qs8-igemm/gen/3x4c8-minmax-wasmsimd-ld128.c |
| 16 | |
Marat Dukhan | 40bbafe | 2020-08-04 02:04:22 -0700 | [diff] [blame] | 17 | ################################### ARM NEON ################################## |
| 18 | tools/xngen src/qs8-igemm/minmax-neon-mlal-lane.c.in -D MR=1 -D NR=8 -o src/qs8-igemm/gen/1x8-minmax-neon-mlal-lane.c |
| 19 | tools/xngen src/qs8-igemm/minmax-neon-mlal-lane.c.in -D MR=4 -D NR=8 -o src/qs8-igemm/gen/4x8-minmax-neon-mlal-lane.c |
| 20 | |
| 21 | tools/xngen src/qs8-igemm/minmax-neon-mlal-lane.c.in -D MR=1 -D NR=16 -o src/qs8-igemm/gen/1x16-minmax-neon-mlal-lane.c |
| 22 | tools/xngen src/qs8-igemm/minmax-neon-mlal-lane.c.in -D MR=2 -D NR=16 -o src/qs8-igemm/gen/2x16-minmax-neon-mlal-lane.c |
| 23 | |
Benoit Jacob | a05487f | 2020-08-14 13:37:21 -0700 | [diff] [blame] | 24 | ### C4 micro-kernels |
Marat Dukhan | d4c8303 | 2020-09-09 23:20:12 -0700 | [diff] [blame] | 25 | tools/xngen src/qs8-igemm/MRxNRc4-minmax-neondot.c.in -D MR=1 -D NR=8 -o src/qs8-igemm/gen/1x8c4-minmax-neondot.c |
| 26 | tools/xngen src/qs8-igemm/MRxNRc4-minmax-neondot.c.in -D MR=8 -D NR=8 -o src/qs8-igemm/gen/8x8c4-minmax-neondot.c |
| 27 | tools/xngen src/qs8-igemm/MRxNRc4-minmax-neondot.c.in -D MR=12 -D NR=8 -o src/qs8-igemm/gen/12x8c4-minmax-neondot.c |
| 28 | tools/xngen src/qs8-igemm/MRxNRc4-minmax-neondot.c.in -D MR=1 -D NR=16 -o src/qs8-igemm/gen/1x16c4-minmax-neondot.c |
| 29 | tools/xngen src/qs8-igemm/MRxNRc4-minmax-neondot.c.in -D MR=4 -D NR=16 -o src/qs8-igemm/gen/4x16c4-minmax-neondot.c |
Benoit Jacob | a05487f | 2020-08-14 13:37:21 -0700 | [diff] [blame] | 30 | |
Marat Dukhan | f948068 | 2020-07-31 14:50:24 -0700 | [diff] [blame] | 31 | ################################### x86 SSE ################################### |
| 32 | ### C2 micro-kernels |
Marat Dukhan | 14d3ce8 | 2020-07-31 16:19:15 -0700 | [diff] [blame] | 33 | tools/xngen src/qs8-igemm/MRx4c2-minmax-sse.c.in -D MR=1 -D SSE=2 -D LD128=0 -o src/qs8-igemm/gen/1x4c2-minmax-sse2-ld64.c |
| 34 | tools/xngen src/qs8-igemm/MRx4c2-minmax-sse.c.in -D MR=4 -D SSE=2 -D LD128=0 -o src/qs8-igemm/gen/4x4c2-minmax-sse2-ld64.c |
Marat Dukhan | f948068 | 2020-07-31 14:50:24 -0700 | [diff] [blame] | 35 | |
Marat Dukhan | 14d3ce8 | 2020-07-31 16:19:15 -0700 | [diff] [blame] | 36 | tools/xngen src/qs8-igemm/MRx4c2-minmax-sse.c.in -D MR=1 -D SSE=3 -D LD128=0 -o src/qs8-igemm/gen/1x4c2-minmax-ssse3-ld64.c |
| 37 | tools/xngen src/qs8-igemm/MRx4c2-minmax-sse.c.in -D MR=4 -D SSE=3 -D LD128=0 -o src/qs8-igemm/gen/4x4c2-minmax-ssse3-ld64.c |
Marat Dukhan | f948068 | 2020-07-31 14:50:24 -0700 | [diff] [blame] | 38 | |
Marat Dukhan | 14d3ce8 | 2020-07-31 16:19:15 -0700 | [diff] [blame] | 39 | tools/xngen src/qs8-igemm/MRx4c2-minmax-sse.c.in -D MR=1 -D SSE=4 -D LD128=0 -o src/qs8-igemm/gen/1x4c2-minmax-sse41-ld64.c |
| 40 | tools/xngen src/qs8-igemm/MRx4c2-minmax-sse.c.in -D MR=4 -D SSE=4 -D LD128=0 -o src/qs8-igemm/gen/4x4c2-minmax-sse41-ld64.c |
Marat Dukhan | f948068 | 2020-07-31 14:50:24 -0700 | [diff] [blame] | 41 | |
Marat Dukhan | 1566fee | 2020-08-02 21:55:41 -0700 | [diff] [blame] | 42 | tools/xngen src/qs8-igemm/MRx4c2-minmax-sse.c.in -D MR=1 -D SSE=5 -D LD128=0 -o src/qs8-igemm/gen/1x4c2-minmax-xop-ld64.c |
| 43 | tools/xngen src/qs8-igemm/MRx4c2-minmax-sse.c.in -D MR=4 -D SSE=5 -D LD128=0 -o src/qs8-igemm/gen/4x4c2-minmax-xop-ld64.c |
| 44 | |
Marat Dukhan | dee732b | 2020-07-31 17:32:04 -0700 | [diff] [blame] | 45 | tools/xngen src/qs8-igemm/MRx4c2-minmax-sse.c.in -D MR=1 -D SSE=2 -D LD128=1 -o src/qs8-igemm/gen/1x4c2-minmax-sse2-ld128.c |
| 46 | tools/xngen src/qs8-igemm/MRx4c2-minmax-sse.c.in -D MR=4 -D SSE=2 -D LD128=1 -o src/qs8-igemm/gen/4x4c2-minmax-sse2-ld128.c |
| 47 | |
| 48 | tools/xngen src/qs8-igemm/MRx4c2-minmax-sse.c.in -D MR=1 -D SSE=3 -D LD128=1 -o src/qs8-igemm/gen/1x4c2-minmax-ssse3-ld128.c |
| 49 | tools/xngen src/qs8-igemm/MRx4c2-minmax-sse.c.in -D MR=4 -D SSE=3 -D LD128=1 -o src/qs8-igemm/gen/4x4c2-minmax-ssse3-ld128.c |
| 50 | |
| 51 | tools/xngen src/qs8-igemm/MRx4c2-minmax-sse.c.in -D MR=1 -D SSE=4 -D LD128=1 -o src/qs8-igemm/gen/1x4c2-minmax-sse41-ld128.c |
| 52 | tools/xngen src/qs8-igemm/MRx4c2-minmax-sse.c.in -D MR=4 -D SSE=4 -D LD128=1 -o src/qs8-igemm/gen/4x4c2-minmax-sse41-ld128.c |
| 53 | |
Marat Dukhan | 1566fee | 2020-08-02 21:55:41 -0700 | [diff] [blame] | 54 | tools/xngen src/qs8-igemm/MRx4c2-minmax-sse.c.in -D MR=1 -D SSE=5 -D LD128=1 -o src/qs8-igemm/gen/1x4c2-minmax-xop-ld128.c |
| 55 | tools/xngen src/qs8-igemm/MRx4c2-minmax-sse.c.in -D MR=4 -D SSE=5 -D LD128=1 -o src/qs8-igemm/gen/4x4c2-minmax-xop-ld128.c |
| 56 | |
Marat Dukhan | 07bd252 | 2020-07-31 19:12:39 -0700 | [diff] [blame] | 57 | ### C8 micro-kernels |
| 58 | tools/xngen src/qs8-igemm/MRx4c8-minmax-sse.c.in -D MR=1 -D SSE=2 -D LD128=0 -o src/qs8-igemm/gen/1x4c8-minmax-sse2-ld64.c |
| 59 | tools/xngen src/qs8-igemm/MRx4c8-minmax-sse.c.in -D MR=2 -D SSE=2 -D LD128=0 -o src/qs8-igemm/gen/2x4c8-minmax-sse2-ld64.c |
Marat Dukhan | e7edc80 | 2020-08-03 16:43:57 -0700 | [diff] [blame] | 60 | tools/xngen src/qs8-igemm/MRx4c8-minmax-sse.c.in -D MR=3 -D SSE=2 -D LD128=0 -o src/qs8-igemm/gen/3x4c8-minmax-sse2-ld64.c |
Marat Dukhan | 07bd252 | 2020-07-31 19:12:39 -0700 | [diff] [blame] | 61 | |
| 62 | tools/xngen src/qs8-igemm/MRx4c8-minmax-sse.c.in -D MR=1 -D SSE=3 -D LD128=0 -o src/qs8-igemm/gen/1x4c8-minmax-ssse3-ld64.c |
| 63 | tools/xngen src/qs8-igemm/MRx4c8-minmax-sse.c.in -D MR=2 -D SSE=3 -D LD128=0 -o src/qs8-igemm/gen/2x4c8-minmax-ssse3-ld64.c |
Marat Dukhan | e7edc80 | 2020-08-03 16:43:57 -0700 | [diff] [blame] | 64 | tools/xngen src/qs8-igemm/MRx4c8-minmax-sse.c.in -D MR=3 -D SSE=3 -D LD128=0 -o src/qs8-igemm/gen/3x4c8-minmax-ssse3-ld64.c |
Marat Dukhan | 07bd252 | 2020-07-31 19:12:39 -0700 | [diff] [blame] | 65 | |
| 66 | tools/xngen src/qs8-igemm/MRx4c8-minmax-sse.c.in -D MR=1 -D SSE=4 -D LD128=0 -o src/qs8-igemm/gen/1x4c8-minmax-sse41-ld64.c |
| 67 | tools/xngen src/qs8-igemm/MRx4c8-minmax-sse.c.in -D MR=2 -D SSE=4 -D LD128=0 -o src/qs8-igemm/gen/2x4c8-minmax-sse41-ld64.c |
Marat Dukhan | e7edc80 | 2020-08-03 16:43:57 -0700 | [diff] [blame] | 68 | tools/xngen src/qs8-igemm/MRx4c8-minmax-sse.c.in -D MR=3 -D SSE=4 -D LD128=0 -o src/qs8-igemm/gen/3x4c8-minmax-sse41-ld64.c |
Marat Dukhan | 07bd252 | 2020-07-31 19:12:39 -0700 | [diff] [blame] | 69 | |
Marat Dukhan | 1566fee | 2020-08-02 21:55:41 -0700 | [diff] [blame] | 70 | tools/xngen src/qs8-igemm/MRx4c8-minmax-sse.c.in -D MR=1 -D SSE=5 -D LD128=0 -o src/qs8-igemm/gen/1x4c8-minmax-xop-ld64.c |
| 71 | tools/xngen src/qs8-igemm/MRx4c8-minmax-sse.c.in -D MR=2 -D SSE=5 -D LD128=0 -o src/qs8-igemm/gen/2x4c8-minmax-xop-ld64.c |
Marat Dukhan | e7edc80 | 2020-08-03 16:43:57 -0700 | [diff] [blame] | 72 | tools/xngen src/qs8-igemm/MRx4c8-minmax-sse.c.in -D MR=3 -D SSE=5 -D LD128=0 -o src/qs8-igemm/gen/3x4c8-minmax-xop-ld64.c |
Marat Dukhan | 1566fee | 2020-08-02 21:55:41 -0700 | [diff] [blame] | 73 | |
Marat Dukhan | 07bd252 | 2020-07-31 19:12:39 -0700 | [diff] [blame] | 74 | tools/xngen src/qs8-igemm/MRx4c8-minmax-sse.c.in -D MR=1 -D SSE=2 -D LD128=1 -o src/qs8-igemm/gen/1x4c8-minmax-sse2-ld128.c |
| 75 | tools/xngen src/qs8-igemm/MRx4c8-minmax-sse.c.in -D MR=2 -D SSE=2 -D LD128=1 -o src/qs8-igemm/gen/2x4c8-minmax-sse2-ld128.c |
Marat Dukhan | e7edc80 | 2020-08-03 16:43:57 -0700 | [diff] [blame] | 76 | tools/xngen src/qs8-igemm/MRx4c8-minmax-sse.c.in -D MR=3 -D SSE=2 -D LD128=1 -o src/qs8-igemm/gen/3x4c8-minmax-sse2-ld128.c |
Marat Dukhan | 07bd252 | 2020-07-31 19:12:39 -0700 | [diff] [blame] | 77 | |
| 78 | tools/xngen src/qs8-igemm/MRx4c8-minmax-sse.c.in -D MR=1 -D SSE=3 -D LD128=1 -o src/qs8-igemm/gen/1x4c8-minmax-ssse3-ld128.c |
| 79 | tools/xngen src/qs8-igemm/MRx4c8-minmax-sse.c.in -D MR=2 -D SSE=3 -D LD128=1 -o src/qs8-igemm/gen/2x4c8-minmax-ssse3-ld128.c |
Marat Dukhan | e7edc80 | 2020-08-03 16:43:57 -0700 | [diff] [blame] | 80 | tools/xngen src/qs8-igemm/MRx4c8-minmax-sse.c.in -D MR=3 -D SSE=3 -D LD128=1 -o src/qs8-igemm/gen/3x4c8-minmax-ssse3-ld128.c |
Marat Dukhan | 07bd252 | 2020-07-31 19:12:39 -0700 | [diff] [blame] | 81 | |
| 82 | tools/xngen src/qs8-igemm/MRx4c8-minmax-sse.c.in -D MR=1 -D SSE=4 -D LD128=1 -o src/qs8-igemm/gen/1x4c8-minmax-sse41-ld128.c |
| 83 | tools/xngen src/qs8-igemm/MRx4c8-minmax-sse.c.in -D MR=2 -D SSE=4 -D LD128=1 -o src/qs8-igemm/gen/2x4c8-minmax-sse41-ld128.c |
Marat Dukhan | e7edc80 | 2020-08-03 16:43:57 -0700 | [diff] [blame] | 84 | tools/xngen src/qs8-igemm/MRx4c8-minmax-sse.c.in -D MR=3 -D SSE=4 -D LD128=1 -o src/qs8-igemm/gen/3x4c8-minmax-sse41-ld128.c |
Marat Dukhan | 07bd252 | 2020-07-31 19:12:39 -0700 | [diff] [blame] | 85 | |
Marat Dukhan | 1566fee | 2020-08-02 21:55:41 -0700 | [diff] [blame] | 86 | tools/xngen src/qs8-igemm/MRx4c8-minmax-sse.c.in -D MR=1 -D SSE=5 -D LD128=1 -o src/qs8-igemm/gen/1x4c8-minmax-xop-ld128.c |
| 87 | tools/xngen src/qs8-igemm/MRx4c8-minmax-sse.c.in -D MR=2 -D SSE=5 -D LD128=1 -o src/qs8-igemm/gen/2x4c8-minmax-xop-ld128.c |
Marat Dukhan | e7edc80 | 2020-08-03 16:43:57 -0700 | [diff] [blame] | 88 | tools/xngen src/qs8-igemm/MRx4c8-minmax-sse.c.in -D MR=3 -D SSE=5 -D LD128=1 -o src/qs8-igemm/gen/3x4c8-minmax-xop-ld128.c |
Marat Dukhan | 1566fee | 2020-08-02 21:55:41 -0700 | [diff] [blame] | 89 | |
Marat Dukhan | 1280952 | 2020-08-02 22:23:51 -0700 | [diff] [blame] | 90 | ################################### x86 AVX2 ################################## |
| 91 | ### C8 micro-kernels |
| 92 | tools/xngen src/qs8-igemm/MRx8c8-minmax-avx2.c.in -D MR=1 -o src/qs8-igemm/gen/1x8c8-minmax-avx2.c |
| 93 | tools/xngen src/qs8-igemm/MRx8c8-minmax-avx2.c.in -D MR=2 -o src/qs8-igemm/gen/2x8c8-minmax-avx2.c |
| 94 | tools/xngen src/qs8-igemm/MRx8c8-minmax-avx2.c.in -D MR=3 -o src/qs8-igemm/gen/3x8c8-minmax-avx2.c |
| 95 | |
Marat Dukhan | bb00b1d | 2020-08-10 11:37:23 -0700 | [diff] [blame] | 96 | ################################## x86 AVX512 ################################# |
| 97 | ### C8 micro-kernels |
| 98 | tools/xngen src/qs8-igemm/MRx16c8-minmax-avx512skx.c.in -D MR=1 -D VARIANT=LD256 -o src/qs8-igemm/gen/1x16c8-minmax-avx512skx.c |
| 99 | tools/xngen src/qs8-igemm/MRx16c8-minmax-avx512skx.c.in -D MR=2 -D VARIANT=LD256 -o src/qs8-igemm/gen/2x16c8-minmax-avx512skx.c |
| 100 | tools/xngen src/qs8-igemm/MRx16c8-minmax-avx512skx.c.in -D MR=3 -D VARIANT=LD256 -o src/qs8-igemm/gen/3x16c8-minmax-avx512skx.c |
| 101 | tools/xngen src/qs8-igemm/MRx16c8-minmax-avx512skx.c.in -D MR=4 -D VARIANT=LD256 -o src/qs8-igemm/gen/4x16c8-minmax-avx512skx.c |
| 102 | |
Marat Dukhan | f948068 | 2020-07-31 14:50:24 -0700 | [diff] [blame] | 103 | ################################## Unit tests ################################# |
| 104 | tools/generate-gemm-test.py --spec test/qs8-igemm-minmax.yaml --output test/qs8-igemm-minmax.cc |