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 ################################## |
| 8 | ### C8 micro-kernels |
| 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 |
| 25 | 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 |
| 26 | 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 |
| 27 | 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 |
| 28 | |
Marat Dukhan | f948068 | 2020-07-31 14:50:24 -0700 | [diff] [blame] | 29 | ################################### x86 SSE ################################### |
| 30 | ### C2 micro-kernels |
Marat Dukhan | 14d3ce8 | 2020-07-31 16:19:15 -0700 | [diff] [blame] | 31 | 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 |
| 32 | 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] | 33 | |
Marat Dukhan | 14d3ce8 | 2020-07-31 16:19:15 -0700 | [diff] [blame] | 34 | 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 |
| 35 | 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] | 36 | |
Marat Dukhan | 14d3ce8 | 2020-07-31 16:19:15 -0700 | [diff] [blame] | 37 | 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 |
| 38 | 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] | 39 | |
Marat Dukhan | 1566fee | 2020-08-02 21:55:41 -0700 | [diff] [blame] | 40 | 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 |
| 41 | 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 |
| 42 | |
Marat Dukhan | dee732b | 2020-07-31 17:32:04 -0700 | [diff] [blame] | 43 | 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 |
| 44 | 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 |
| 45 | |
| 46 | 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 |
| 47 | 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 |
| 48 | |
| 49 | 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 |
| 50 | 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 |
| 51 | |
Marat Dukhan | 1566fee | 2020-08-02 21:55:41 -0700 | [diff] [blame] | 52 | 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 |
| 53 | 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 |
| 54 | |
Marat Dukhan | 07bd252 | 2020-07-31 19:12:39 -0700 | [diff] [blame] | 55 | ### C8 micro-kernels |
| 56 | 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 |
| 57 | 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] | 58 | 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] | 59 | |
| 60 | 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 |
| 61 | 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] | 62 | 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] | 63 | |
| 64 | 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 |
| 65 | 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] | 66 | 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] | 67 | |
Marat Dukhan | 1566fee | 2020-08-02 21:55:41 -0700 | [diff] [blame] | 68 | 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 |
| 69 | 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] | 70 | 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] | 71 | |
Marat Dukhan | 07bd252 | 2020-07-31 19:12:39 -0700 | [diff] [blame] | 72 | 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 |
| 73 | 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] | 74 | 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] | 75 | |
| 76 | 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 |
| 77 | 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] | 78 | 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] | 79 | |
| 80 | 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 |
| 81 | 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] | 82 | 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] | 83 | |
Marat Dukhan | 1566fee | 2020-08-02 21:55:41 -0700 | [diff] [blame] | 84 | 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 |
| 85 | 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] | 86 | 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] | 87 | |
Marat Dukhan | 1280952 | 2020-08-02 22:23:51 -0700 | [diff] [blame] | 88 | ################################### x86 AVX2 ################################## |
| 89 | ### C8 micro-kernels |
| 90 | tools/xngen src/qs8-igemm/MRx8c8-minmax-avx2.c.in -D MR=1 -o src/qs8-igemm/gen/1x8c8-minmax-avx2.c |
| 91 | tools/xngen src/qs8-igemm/MRx8c8-minmax-avx2.c.in -D MR=2 -o src/qs8-igemm/gen/2x8c8-minmax-avx2.c |
| 92 | tools/xngen src/qs8-igemm/MRx8c8-minmax-avx2.c.in -D MR=3 -o src/qs8-igemm/gen/3x8c8-minmax-avx2.c |
| 93 | |
Marat Dukhan | bb00b1d | 2020-08-10 11:37:23 -0700 | [diff] [blame] | 94 | ################################## x86 AVX512 ################################# |
| 95 | ### C8 micro-kernels |
| 96 | 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 |
| 97 | 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 |
| 98 | 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 |
| 99 | 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 |
| 100 | |
Marat Dukhan | f948068 | 2020-07-31 14:50:24 -0700 | [diff] [blame] | 101 | ################################## Unit tests ################################# |
| 102 | tools/generate-gemm-test.py --spec test/qs8-igemm-minmax.yaml --output test/qs8-igemm-minmax.cc |