blob: 99a9b11d8905b4beb26a9513077a0ebbf044de50 [file] [log] [blame]
Marat Dukhanf9480682020-07-31 14:50:24 -07001#!/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 Dukhan27203da2020-08-05 15:19:03 -07007################################## WAsm SIMD ##################################
Marat Dukhanef4ce312020-09-10 12:29:08 -07008### C8 micro-kernels
Marat Dukhan27203da2020-08-05 15:19:03 -07009tools/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
10tools/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
11tools/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
13tools/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
14tools/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
15tools/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 Dukhan40bbafe2020-08-04 02:04:22 -070017################################### ARM NEON ##################################
18tools/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
19tools/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
21tools/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
22tools/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 Jacoba05487f2020-08-14 13:37:21 -070024### C4 micro-kernels
Marat Dukhand4c83032020-09-09 23:20:12 -070025tools/xngen src/qs8-igemm/MRxNRc4-minmax-neondot.c.in -D MR=1 -D NR=8 -o src/qs8-igemm/gen/1x8c4-minmax-neondot.c
26tools/xngen src/qs8-igemm/MRxNRc4-minmax-neondot.c.in -D MR=8 -D NR=8 -o src/qs8-igemm/gen/8x8c4-minmax-neondot.c
27tools/xngen src/qs8-igemm/MRxNRc4-minmax-neondot.c.in -D MR=12 -D NR=8 -o src/qs8-igemm/gen/12x8c4-minmax-neondot.c
28tools/xngen src/qs8-igemm/MRxNRc4-minmax-neondot.c.in -D MR=1 -D NR=16 -o src/qs8-igemm/gen/1x16c4-minmax-neondot.c
29tools/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 Jacoba05487f2020-08-14 13:37:21 -070030
Marat Dukhanf9480682020-07-31 14:50:24 -070031################################### x86 SSE ###################################
32### C2 micro-kernels
Marat Dukhan14d3ce82020-07-31 16:19:15 -070033tools/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
34tools/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 Dukhanf9480682020-07-31 14:50:24 -070035
Marat Dukhan14d3ce82020-07-31 16:19:15 -070036tools/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
37tools/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 Dukhanf9480682020-07-31 14:50:24 -070038
Marat Dukhan14d3ce82020-07-31 16:19:15 -070039tools/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
40tools/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 Dukhanf9480682020-07-31 14:50:24 -070041
Marat Dukhan1566fee2020-08-02 21:55:41 -070042tools/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
43tools/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 Dukhandee732b2020-07-31 17:32:04 -070045tools/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
46tools/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
48tools/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
49tools/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
51tools/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
52tools/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 Dukhan1566fee2020-08-02 21:55:41 -070054tools/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
55tools/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 Dukhan07bd2522020-07-31 19:12:39 -070057### C8 micro-kernels
58tools/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
59tools/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 Dukhane7edc802020-08-03 16:43:57 -070060tools/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 Dukhan07bd2522020-07-31 19:12:39 -070061
62tools/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
63tools/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 Dukhane7edc802020-08-03 16:43:57 -070064tools/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 Dukhan07bd2522020-07-31 19:12:39 -070065
66tools/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
67tools/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 Dukhane7edc802020-08-03 16:43:57 -070068tools/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 Dukhan07bd2522020-07-31 19:12:39 -070069
Marat Dukhan1566fee2020-08-02 21:55:41 -070070tools/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
71tools/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 Dukhane7edc802020-08-03 16:43:57 -070072tools/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 Dukhan1566fee2020-08-02 21:55:41 -070073
Marat Dukhan07bd2522020-07-31 19:12:39 -070074tools/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
75tools/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 Dukhane7edc802020-08-03 16:43:57 -070076tools/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 Dukhan07bd2522020-07-31 19:12:39 -070077
78tools/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
79tools/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 Dukhane7edc802020-08-03 16:43:57 -070080tools/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 Dukhan07bd2522020-07-31 19:12:39 -070081
82tools/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
83tools/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 Dukhane7edc802020-08-03 16:43:57 -070084tools/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 Dukhan07bd2522020-07-31 19:12:39 -070085
Marat Dukhan1566fee2020-08-02 21:55:41 -070086tools/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
87tools/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 Dukhane7edc802020-08-03 16:43:57 -070088tools/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 Dukhan1566fee2020-08-02 21:55:41 -070089
Marat Dukhan12809522020-08-02 22:23:51 -070090################################### x86 AVX2 ##################################
91### C8 micro-kernels
92tools/xngen src/qs8-igemm/MRx8c8-minmax-avx2.c.in -D MR=1 -o src/qs8-igemm/gen/1x8c8-minmax-avx2.c
93tools/xngen src/qs8-igemm/MRx8c8-minmax-avx2.c.in -D MR=2 -o src/qs8-igemm/gen/2x8c8-minmax-avx2.c
94tools/xngen src/qs8-igemm/MRx8c8-minmax-avx2.c.in -D MR=3 -o src/qs8-igemm/gen/3x8c8-minmax-avx2.c
95
Marat Dukhanbb00b1d2020-08-10 11:37:23 -070096################################## x86 AVX512 #################################
97### C8 micro-kernels
98tools/xngen src/qs8-igemm/MRx16c8-minmax-avx512skx.c.in -D MR=1 -D VARIANT=LD256 -o src/qs8-igemm/gen/1x16c8-minmax-avx512skx.c
99tools/xngen src/qs8-igemm/MRx16c8-minmax-avx512skx.c.in -D MR=2 -D VARIANT=LD256 -o src/qs8-igemm/gen/2x16c8-minmax-avx512skx.c
100tools/xngen src/qs8-igemm/MRx16c8-minmax-avx512skx.c.in -D MR=3 -D VARIANT=LD256 -o src/qs8-igemm/gen/3x16c8-minmax-avx512skx.c
101tools/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 Dukhanf9480682020-07-31 14:50:24 -0700103################################## Unit tests #################################
104tools/generate-gemm-test.py --spec test/qs8-igemm-minmax.yaml --output test/qs8-igemm-minmax.cc