Rasmus Munk Larsen
2f6ddaa25c
Add partial vectorization for matrices and tensors of bool. This speeds up boolean operations on Tensors by up to 25x.
Benchmark numbers for the logical and of two NxN tensors:
name old time/op new time/op delta
BM_booleanAnd_1T/3 [using 1 threads] 14.6ns ± 0% 14.4ns ± 0% -0.96%
BM_booleanAnd_1T/4 [using 1 threads] 20.5ns ±12% 9.0ns ± 0% -56.07%
BM_booleanAnd_1T/7 [using 1 threads] 41.7ns ± 0% 10.5ns ± 0% -74.87%
BM_booleanAnd_1T/8 [using 1 threads] 52.1ns ± 0% 10.1ns ± 0% -80.59%
BM_booleanAnd_1T/10 [using 1 threads] 76.3ns ± 0% 13.8ns ± 0% -81.87%
BM_booleanAnd_1T/15 [using 1 threads] 167ns ± 0% 16ns ± 0% -90.45%
BM_booleanAnd_1T/16 [using 1 threads] 188ns ± 0% 16ns ± 0% -91.57%
BM_booleanAnd_1T/31 [using 1 threads] 667ns ± 0% 34ns ± 0% -94.83%
BM_booleanAnd_1T/32 [using 1 threads] 710ns ± 0% 35ns ± 0% -95.01%
BM_booleanAnd_1T/64 [using 1 threads] 2.80µs ± 0% 0.11µs ± 0% -95.93%
BM_booleanAnd_1T/128 [using 1 threads] 11.2µs ± 0% 0.4µs ± 0% -96.11%
BM_booleanAnd_1T/256 [using 1 threads] 44.6µs ± 0% 2.5µs ± 0% -94.31%
BM_booleanAnd_1T/512 [using 1 threads] 178µs ± 0% 10µs ± 0% -94.35%
BM_booleanAnd_1T/1k [using 1 threads] 717µs ± 0% 78µs ± 1% -89.07%
BM_booleanAnd_1T/2k [using 1 threads] 2.87ms ± 0% 0.31ms ± 1% -89.08%
BM_booleanAnd_1T/4k [using 1 threads] 11.7ms ± 0% 1.9ms ± 4% -83.55%
BM_booleanAnd_1T/10k [using 1 threads] 70.3ms ± 0% 17.2ms ± 4% -75.48%
2020-04-20 20:16:28 +00:00
..
2020-04-20 20:16:28 +00:00
2020-04-20 20:16:28 +00:00
2020-04-07 22:09:51 +00:00
2020-04-06 23:38:57 +00:00
2018-11-09 11:35:48 +01:00
2019-07-12 19:46:37 +02:00
2019-12-19 17:30:11 +01:00
2018-06-28 00:20:59 +02:00
2018-11-23 16:01:47 +01:00
2017-02-28 14:00:15 -08:00
2019-02-15 16:35:35 +01:00
2019-02-15 16:35:35 +01:00
2017-02-28 14:58:45 -08:00
2020-04-13 16:41:20 +02:00
2018-12-05 15:01:04 +01:00
2019-09-11 15:40:07 +02:00
2016-12-28 18:29:30 +01:00
2019-02-16 09:44:05 +01:00
2019-07-12 19:43:32 +02:00
2019-12-19 17:30:11 +01:00
2019-12-19 17:30:11 +01:00
2019-04-24 12:42:28 -07:00
2019-11-05 17:17:58 -08:00
2018-04-03 16:15:43 +02:00
2019-03-14 10:18:24 +01:00
2017-02-28 14:58:45 -08:00
2017-10-26 22:44:28 +02:00
2019-04-24 12:42:28 -07:00
2017-02-28 09:56:45 -08:00
2019-02-15 16:35:35 +01:00
2020-04-20 20:16:28 +00:00
2020-01-07 21:22:44 +00:00
2019-01-17 18:27:49 +01:00
2019-11-13 21:16:53 +01:00
2019-12-11 18:22:57 +00:00
2017-10-12 15:22:10 -04:00
2019-12-19 17:30:11 +01:00
2020-03-19 17:45:20 +00:00
2019-12-16 21:33:42 +00:00
2019-07-18 20:22:17 +02:00
2019-12-19 17:30:11 +01:00
2019-01-17 18:27:25 +01:00
2018-03-11 10:01:44 -04:00
2020-04-07 09:01:11 -07:00
2018-10-16 01:04:25 +02:00
2019-09-24 11:09:58 +02:00
2019-07-12 19:46:37 +02:00
2019-02-15 16:35:35 +01:00
2020-03-20 13:37:37 +09:00
2017-02-28 16:42:00 -08:00
2019-02-15 16:35:35 +01:00
2019-03-03 15:25:25 +01:00
2017-02-28 16:42:00 -08:00
2019-04-23 17:23:19 -07:00
2017-02-28 09:56:45 -08:00
2019-02-21 22:44:40 +01:00
2019-01-17 11:33:43 +01:00
2018-06-07 15:45:24 +02:00
2019-01-17 18:27:49 +01:00
2019-01-18 10:41:14 +01:00
2019-09-11 15:04:25 +02:00
2018-04-04 15:13:31 +02:00
2019-12-03 14:40:15 +01:00
2019-02-15 16:35:35 +01:00
2019-12-19 17:30:11 +01:00
2019-09-24 11:09:58 +02:00
2019-12-19 17:30:11 +01:00
2019-02-15 16:35:35 +01:00
2020-03-20 19:30:01 +00:00
2019-05-31 15:26:06 -07:00