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-03-23 18:09:02 +00:00
2019-12-06 21:07:39 +01:00
2018-07-17 14:46:15 +02:00
2019-11-14 14:58:08 +01:00
2019-09-16 19:33:29 -04:00
2018-07-17 14:46:15 +02:00
2020-01-11 10:31:21 +00:00
2019-05-08 10:16:46 -07:00
2018-09-14 20:21:56 +02:00
2018-07-17 14:46:15 +02:00
2018-09-17 18:29:12 -07:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:16:48 -04:00
2019-11-28 10:08:54 +00:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:46:15 +02:00
2019-12-18 20:07:00 +00:00
2019-12-19 19:20:48 +01:00
2020-03-23 18:09:02 +00:00
2018-07-17 14:46:15 +02:00
2019-09-24 12:52:45 -07:00
2019-11-28 10:08:54 +00:00
2018-07-17 14:16:48 -04:00
2018-07-17 14:46:15 +02:00
2019-11-28 10:08:54 +00:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:46:15 +02:00
2018-07-25 13:51:10 -07:00
2018-07-25 13:51:10 -07:00
2018-07-17 14:46:15 +02:00
2018-09-18 04:15:01 -04:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:16:48 -04:00
2019-11-28 10:08:54 +00:00
2019-08-19 11:44:25 -07:00
2018-07-17 14:46:15 +02:00
2018-09-13 17:04:05 -07:00
2018-07-17 14:46:15 +02:00
2019-11-28 10:08:54 +00:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:16:48 -04:00
2018-09-18 10:57:00 -07:00
2018-07-17 14:46:15 +02:00
2019-11-12 10:12:28 -08:00
2020-04-20 20:16:28 +00:00
2019-01-16 14:03:12 -08:00
2018-07-17 14:46:15 +02:00
2019-11-28 10:08:54 +00:00
2019-03-05 11:19:25 -08:00
2018-07-17 14:46:15 +02:00
2019-03-05 16:35:21 -08:00
2019-09-16 19:33:29 -04:00
2018-07-17 14:46:15 +02:00
2019-11-28 10:08:54 +00:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:46:15 +02:00
2018-09-17 10:58:07 -07:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:46:15 +02:00
2019-09-03 11:38:39 -07:00
2019-11-28 10:08:54 +00:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:46:15 +02:00
2019-11-28 10:08:54 +00:00
2019-06-28 10:08:23 +01:00
2018-02-07 19:10:54 +01:00
2019-11-08 17:44:50 -08:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:16:48 -04:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:16:48 -04:00
2019-11-28 10:08:54 +00:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:16:48 -04:00
2019-11-28 10:08:54 +00:00
2018-10-25 11:31:29 -07:00
2018-07-17 14:46:15 +02:00
2019-11-28 10:08:54 +00:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:16:48 -04:00
2019-11-28 10:08:54 +00:00
2018-07-17 14:46:15 +02:00
2019-11-28 10:08:54 +00:00
2018-09-20 17:03:42 +02:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:46:15 +02:00
2019-11-28 10:08:54 +00:00
2018-07-17 14:46:15 +02:00
2019-09-10 16:13:32 -07:00
2019-09-19 13:54:49 -07:00
2020-03-23 18:09:02 +00:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:46:15 +02:00
2018-08-28 18:32:39 +02:00
2019-05-10 14:57:05 +02:00
2010-02-16 21:41:04 -05:00
2019-10-09 16:00:57 +02:00
2018-08-28 18:32:39 +02:00
2018-07-17 14:46:15 +02:00
2018-08-14 14:08:36 -07:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:46:15 +02:00
2019-12-20 18:10:22 +01:00
2016-05-22 18:17:04 +02:00
2018-11-20 16:23:28 +01:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:46:15 +02:00
2018-10-15 10:23:32 +02:00
2018-08-28 18:32:39 +02:00
2018-08-25 09:06:08 +02:00
2018-12-09 22:54:39 +01:00
2018-07-17 14:46:15 +02:00
2018-10-11 10:27:23 +02:00
2020-01-14 21:32:48 +00:00
2020-01-11 10:31:21 +00:00
2018-07-17 14:46:15 +02:00