diff options
author | Sayed Adel <seiko@imavr.com> | 2023-02-20 03:11:31 +0200 |
---|---|---|
committer | Sayed Adel <seiko@imavr.com> | 2023-02-20 05:41:20 +0200 |
commit | 84526dd0f869e0f573c46991a567b3b7a65a1c05 (patch) | |
tree | a96f07f109fc791b1a3b708814ea27d56bdf6c22 /numpy/array_api/tests/test_indexing_functions.py | |
parent | 2aa7fde3ace38bd19469e76a445f320d5916962d (diff) | |
download | numpy-84526dd0f869e0f573c46991a567b3b7a65a1c05.tar.gz |
SIMD: Disable auto-vectorization of avx512_skx
Abandon the idea of providing binary objects for AVX512_SKX due to the massive increase
in binary size over +400k (striped) with no vast change in performance except
for reciprocal on some data types, tested against gcc/12.2.1 build:
AVX512_SKX AVX2 ratio
[e0e4acb7] [0a56560e]
<removes_old_cpu_dispatcher~1> <removes_old_cpu_dispatcher>
+ 26.0±0.07μs 125±7μs 4.83 bench_ufunc_strides.UnaryIntContig.time_unary(<ufunc 'reciprocal'>, 1, 1, 'L')
+ 26.0±0.04μs 122±4μs 4.71 bench_ufunc_strides.UnaryIntContig.time_unary(<ufunc 'reciprocal'>, 1, 1, 'Q')
+ 25.8±0.01μs 110±0.2μs 4.24 bench_ufunc_strides.UnaryIntContig.time_unary(<ufunc 'reciprocal'>, 1, 1, 'q')
+ 25.9±0.08μs 108±0.6μs 4.18 bench_ufunc_strides.UnaryIntContig.time_unary(<ufunc 'reciprocal'>, 1, 1, 'l')
+ 26.3±0.04μs 43.7±0.04μs 1.66 bench_ufunc_strides.UnaryIntContig.time_unary(<ufunc 'reciprocal'>, 1, 1, 'I')
+ 1.63±0.03μs 2.39±0.02μs 1.47 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in0(<ufunc 'logical_and'>, 1, 1, 1, 'l')
+ 1.64±0.05μs 2.39±0μs 1.46 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in0(<ufunc 'logical_and'>, 1, 1, 1, 'Q')
+ 1.63±0.05μs 2.37±0.01μs 1.45 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in0(<ufunc 'logical_and'>, 1, 1, 1, 'L')
+ 1.64±0.04μs 2.37±0.01μs 1.45 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in0(<ufunc 'logical_and'>, 1, 1, 1, 'q')
+ 1.63±0.01μs 2.36±0.01μs 1.44 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in1(<ufunc 'logical_and'>, 1, 1, 1, 'q')
+ 1.63±0.01μs 2.35±0μs 1.44 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in1(<ufunc 'logical_and'>, 1, 1, 1, 'L')
+ 1.64±0.02μs 2.36±0.02μs 1.44 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in1(<ufunc 'logical_and'>, 1, 1, 1, 'Q')
+ 1.64±0.01μs 2.35±0μs 1.43 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in1(<ufunc 'logical_and'>, 1, 1, 1, 'l')
+ 8.69±0.07μs 12.5±0.03μs 1.43 bench_ufunc_strides.UnaryIntContig.time_unary(<ufunc 'logical_not'>, 1, 1, 'l')
+ 8.75±0.09μs 12.4±0.09μs 1.42 bench_ufunc_strides.UnaryIntContig.time_unary(<ufunc 'logical_not'>, 1, 1, 'L')
+ 8.65±0.09μs 12.3±0.1μs 1.42 bench_ufunc_strides.UnaryIntContig.time_unary(<ufunc 'logical_not'>, 1, 1, 'Q')
+ 8.63±0.02μs 12.2±0.2μs 1.42 bench_ufunc_strides.UnaryIntContig.time_unary(<ufunc 'logical_not'>, 1, 1, 'q')
+ 1.63±0μs 2.28±0.01μs 1.39 bench_ufunc_strides.BinaryIntContig.time_binary(<ufunc 'logical_xor'>, 1, 1, 1, 'l')
+ 1.63±0μs 2.27±0μs 1.39 bench_ufunc_strides.BinaryIntContig.time_binary(<ufunc 'logical_xor'>, 1, 1, 1, 'L')
+ 1.63±0μs 2.26±0μs 1.39 bench_ufunc_strides.BinaryIntContig.time_binary(<ufunc 'logical_xor'>, 1, 1, 1, 'Q')
+ 1.64±0.01μs 2.26±0μs 1.38 bench_ufunc_strides.BinaryIntContig.time_binary(<ufunc 'logical_and'>, 1, 1, 1, 'l')
+ 1.64±0.01μs 2.26±0μs 1.38 bench_ufunc_strides.BinaryIntContig.time_binary(<ufunc 'logical_and'>, 1, 1, 1, 'Q')
+ 1.64±0.01μs 2.27±0μs 1.38 bench_ufunc_strides.BinaryIntContig.time_binary(<ufunc 'logical_and'>, 1, 1, 1, 'L')
+ 1.72±0.06μs 2.37±0.01μs 1.38 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in0(<ufunc 'logical_xor'>, 1, 1, 1, 'L')
+ 1.64±0.01μs 2.26±0μs 1.38 bench_ufunc_strides.BinaryIntContig.time_binary(<ufunc 'logical_and'>, 1, 1, 1, 'q')
+ 1.64±0.01μs 2.26±0μs 1.38 bench_ufunc_strides.BinaryIntContig.time_binary(<ufunc 'logical_xor'>, 1, 1, 1, 'q')
+ 1.74±0.05μs 2.39±0μs 1.37 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in0(<ufunc 'logical_xor'>, 1, 1, 1, 'q')
+ 1.75±0.08μs 2.37±0.01μs 1.36 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in0(<ufunc 'logical_xor'>, 1, 1, 1, 'Q')
+ 1.74±0.03μs 2.35±0.01μs 1.35 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in1(<ufunc 'logical_xor'>, 1, 1, 1, 'Q')
+ 1.75±0.02μs 2.35±0.01μs 1.34 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in1(<ufunc 'logical_xor'>, 1, 1, 1, 'L')
+ 1.75±0.04μs 2.36±0μs 1.34 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in1(<ufunc 'logical_xor'>, 1, 1, 1, 'l')
+ 1.77±0.05μs 2.37±0.01μs 1.34 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in0(<ufunc 'logical_xor'>, 1, 1, 1, 'l')
+ 1.77±0.02μs 2.35±0μs 1.33 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in1(<ufunc 'logical_xor'>, 1, 1, 1, 'q')
+ 1.69±0.01μs 2.20±0.01μs 1.31 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in0(<ufunc 'logical_or'>, 1, 1, 1, 'l')
+ 1.69±0.02μs 2.20±0.01μs 1.30 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in0(<ufunc 'logical_or'>, 1, 1, 1, 'L')
+ 1.69±0.02μs 2.21±0.01μs 1.30 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in0(<ufunc 'logical_or'>, 1, 1, 1, 'Q')
+ 1.70±0.02μs 2.21±0.01μs 1.30 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in0(<ufunc 'logical_or'>, 1, 1, 1, 'q')
+ 1.70±0.01μs 2.18±0.01μs 1.28 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in1(<ufunc 'logical_or'>, 1, 1, 1, 'l')
+ 1.69±0μs 2.15±0.01μs 1.27 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in1(<ufunc 'logical_or'>, 1, 1, 1, 'L')
+ 1.70±0.01μs 2.16±0.01μs 1.27 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in1(<ufunc 'logical_or'>, 1, 1, 1, 'Q')
+ 1.71±0.01μs 2.17±0.01μs 1.27 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in1(<ufunc 'logical_or'>, 1, 1, 1, 'q')
+ 886±7ns 1.10±0μs 1.24 bench_ufunc_strides.BinaryIntContig.time_binary(<ufunc 'left_shift'>, 1, 1, 1, 'H')
+ 895±6ns 1.10±0μs 1.23 bench_ufunc_strides.BinaryIntContig.time_binary(<ufunc 'right_shift'>, 1, 1, 1, 'H')
+ 897±7ns 1.10±0μs 1.23 bench_ufunc_strides.BinaryIntContig.time_binary(<ufunc 'left_shift'>, 1, 1, 1, 'h')
+ 4.25±0.02μs 5.03±0.01μs 1.18 bench_ufunc_strides.UnaryIntContig.time_unary(<ufunc 'logical_not'>, 1, 1, 'I')
+ 1.31±0.02μs 1.54±0μs 1.18 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in0(<ufunc 'logical_and'>, 1, 1, 1, 'I')
+ 1.31±0.01μs 1.54±0μs 1.17 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in0(<ufunc 'logical_and'>, 1, 1, 1, 'i')
+ 4.27±0.08μs 4.95±0μs 1.16 bench_ufunc_strides.UnaryIntContig.time_unary(<ufunc 'logical_not'>, 1, 1, 'i')
+ 996±20ns 1.15±0μs 1.16 bench_ufunc_strides.BinaryIntContig.time_binary(<ufunc 'right_shift'>, 1, 1, 1, 'h')
+ 1.21±0μs 1.40±0μs 1.15 bench_ufunc_strides.BinaryIntContig.time_binary(<ufunc 'right_shift'>, 1, 1, 1, 'b')
+ 1.33±0.03μs 1.54±0.01μs 1.15 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in0(<ufunc 'logical_xor'>, 1, 1, 1, 'I')
+ 1.19±0μs 1.37±0μs 1.15 bench_ufunc_strides.BinaryIntContig.time_binary(<ufunc 'left_shift'>, 1, 1, 1, 'B')
+ 1.34±0.01μs 1.53±0μs 1.14 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in0(<ufunc 'logical_xor'>, 1, 1, 1, 'i')
+ 1.32±0.02μs 1.51±0μs 1.14 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in1(<ufunc 'logical_and'>, 1, 1, 1, 'I')
+ 1.19±0μs 1.36±0μs 1.14 bench_ufunc_strides.BinaryIntContig.time_binary(<ufunc 'left_shift'>, 1, 1, 1, 'b')
+ 1.32±0.01μs 1.50±0μs 1.14 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in1(<ufunc 'logical_and'>, 1, 1, 1, 'i')
+ 1.36±0.01μs 1.54±0.01μs 1.14 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in0(<ufunc 'left_shift'>, 1, 1, 1, 'h')
+ 1.20±0μs 1.36±0μs 1.13 bench_ufunc_strides.BinaryIntContig.time_binary(<ufunc 'right_shift'>, 1, 1, 1, 'B')
+ 1.43±0μs 1.61±0.01μs 1.13 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in0(<ufunc 'right_shift'>, 1, 1, 1, 'H')
+ 1.43±0μs 1.61±0μs 1.12 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in0(<ufunc 'left_shift'>, 1, 1, 1, 'H')
+ 1.38±0μs 1.55±0μs 1.12 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in0(<ufunc 'right_shift'>, 1, 1, 1, 'h')
+ 1.34±0.01μs 1.51±0μs 1.12 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in1(<ufunc 'logical_xor'>, 1, 1, 1, 'I')
+ 1.35±0.02μs 1.51±0μs 1.12 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in1(<ufunc 'logical_xor'>, 1, 1, 1, 'i')
+ 15.3±0.5μs 17.1±0.03μs 1.11 bench_ufunc_strides.UnaryIntContig.time_unary(<ufunc 'sign'>, 1, 1, 'l')
+ 15.3±0.4μs 17.1±0.06μs 1.11 bench_ufunc_strides.UnaryIntContig.time_unary(<ufunc 'sign'>, 1, 1, 'q')
+ 1.05±0μs 1.16±0μs 1.11 bench_ufunc_strides.BinaryIntContig.time_binary(<ufunc 'logical_and'>, 1, 1, 1, 'i')
+ 1.41±0.01μs 1.57±0μs 1.11 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in0(<ufunc 'left_shift'>, 1, 1, 1, 'b')
+ 1.34±0.01μs 1.49±0μs 1.11 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in0(<ufunc 'logical_or'>, 1, 1, 1, 'I')
+ 1.34±0μs 1.48±0.01μs 1.11 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in0(<ufunc 'logical_or'>, 1, 1, 1, 'i')
+ 1.05±0.01μs 1.16±0μs 1.11 bench_ufunc_strides.BinaryIntContig.time_binary(<ufunc 'logical_and'>, 1, 1, 1, 'I')
+ 1.05±0.01μs 1.16±0μs 1.10 bench_ufunc_strides.BinaryIntContig.time_binary(<ufunc 'logical_xor'>, 1, 1, 1, 'I')
+ 1.43±0.02μs 1.58±0.01μs 1.10 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in0(<ufunc 'right_shift'>, 1, 1, 1, 'b')
+ 15.0±0.3μs 16.6±0.05μs 1.10 bench_ufunc_strides.UnaryIntContig.time_unary(<ufunc 'square'>, 1, 1, 'Q')
+ 15.1±0.2μs 16.5±0.1μs 1.10 bench_ufunc_strides.UnaryIntContig.time_unary(<ufunc 'absolute'>, 1, 1, 'l')
+ 15.0±0.3μs 16.5±0.02μs 1.10 bench_ufunc_strides.UnaryIntContig.time_unary(<ufunc 'square'>, 1, 1, 'l')
+ 1.06±0μs 1.16±0μs 1.10 bench_ufunc_strides.BinaryIntContig.time_binary(<ufunc 'logical_xor'>, 1, 1, 1, 'i')
+ 1.50±0.01μs 1.64±0μs 1.09 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in0(<ufunc 'right_shift'>, 1, 1, 1, 'B')
+ 1.51±0.01μs 1.64±0μs 1.09 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in0(<ufunc 'left_shift'>, 1, 1, 1, 'B')
+ 1.60±0μs 1.74±0.01μs 1.09 bench_ufunc_strides.BinaryIntContig.time_binary(<ufunc 'logical_or'>, 1, 1, 1, 'L')
+ 15.1±0.5μs 16.4±0.03μs 1.09 bench_ufunc_strides.UnaryIntContig.time_unary(<ufunc 'square'>, 1, 1, 'q')
+ 1.34±0.01μs 1.45±0μs 1.09 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in1(<ufunc 'logical_or'>, 1, 1, 1, 'I')
+ 1.60±0μs 1.74±0μs 1.09 bench_ufunc_strides.BinaryIntContig.time_binary(<ufunc 'logical_or'>, 1, 1, 1, 'Q')
+ 1.60±0μs 1.74±0μs 1.09 bench_ufunc_strides.BinaryIntContig.time_binary(<ufunc 'logical_or'>, 1, 1, 1, 'q')
+ 1.61±0μs 1.74±0μs 1.09 bench_ufunc_strides.BinaryIntContig.time_binary(<ufunc 'logical_or'>, 1, 1, 1, 'l')
+ 7.23±0.3μs 7.84±0.06μs 1.08 bench_ufunc_strides.UnaryIntContig.time_unary(<ufunc 'sign'>, 1, 1, 'i')
+ 15.1±0.3μs 16.4±0.05μs 1.08 bench_ufunc_strides.UnaryIntContig.time_unary(<ufunc 'square'>, 1, 1, 'L')
+ 3.28±0.04μs 3.54±0.01μs 1.08 bench_ufunc_strides.UnaryIntContig.time_unary(<ufunc 'square'>, 1, 1, 'h')
+ 15.1±0.2μs 16.2±0.02μs 1.07 bench_ufunc_strides.UnaryIntContig.time_unary(<ufunc 'invert'>, 1, 1, 'q')
+ 1.14±0.01μs 1.23±0.01μs 1.07 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in0(<ufunc 'logical_and'>, 1, 1, 1, 'h')
+ 1.35±0.01μs 1.44±0.01μs 1.07 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in1(<ufunc 'logical_or'>, 1, 1, 1, 'i')
+ 15.1±0.1μs 16.2±0.04μs 1.07 bench_ufunc_strides.UnaryIntContig.time_unary(<ufunc 'absolute'>, 1, 1, 'q')
+ 7.09±0.1μs 7.59±0.1μs 1.07 bench_ufunc_strides.UnaryIntContig.time_unary(<ufunc 'positive'>, 1, 1, 'i')
+ 2.60±0.03μs 2.78±0.04μs 1.07 bench_ufunc_strides.UnaryIntContig.time_unary(<ufunc 'logical_not'>, 1, 1, 'h')
+ 3.29±0.07μs 3.50±0.07μs 1.06 bench_ufunc_strides.UnaryIntContig.time_unary(<ufunc 'conjugate'>, 1, 1, 'H')
+ 1.16±0μs 1.23±0.01μs 1.06 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in0(<ufunc 'logical_and'>, 1, 1, 1, 'H')
+ 2.57±0.02μs 2.73±0.01μs 1.06 bench_ufunc_strides.UnaryIntContig.time_unary(<ufunc 'logical_not'>, 1, 1, 'H')
+ 3.29±0.07μs 3.49±0.03μs 1.06 bench_ufunc_strides.UnaryIntContig.time_unary(<ufunc 'absolute'>, 1, 1, 'H')
+ 1.18±0μs 1.24±0.01μs 1.06 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in0(<ufunc 'logical_xor'>, 1, 1, 1, 'H')
+ 6.94±0.04μs 7.32±0.1μs 1.06 bench_ufunc_strides.UnaryIntContig.time_unary(<ufunc 'conjugate'>, 1, 1, 'I')
+ 1.16±0.01μs 1.23±0μs 1.05 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in0(<ufunc 'logical_xor'>, 1, 1, 1, 'h')
+ 3.17±0.03μs 3.33±0.06μs 1.05 bench_ufunc_strides.UnaryIntContig.time_unary(<ufunc 'positive'>, 1, 1, 'h')
+ 1.15±0μs 1.21±0.01μs 1.05 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in0(<ufunc 'logical_or'>, 1, 1, 1, 'h')
+ 1.15±0.01μs 1.21±0μs 1.05 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in0(<ufunc 'logical_or'>, 1, 1, 1, 'H')
- 1.04±0.02μs 992±3ns 0.95 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in1(<ufunc 'bitwise_and'>, 1, 1, 1, 'b')
- 1.00±0.01μs 950±1ns 0.95 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in1(<ufunc 'right_shift'>, 1, 1, 1, 'b')
- 2.34±0.03μs 2.22±0.01μs 0.95 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in1(<ufunc 'bitwise_xor'>, 1, 1, 1, 'l')
- 2.09±0.05μs 1.98±0μs 0.95 bench_ufunc_strides.UnaryIntContig.time_unary(<ufunc 'square'>, 1, 1, 'B')
- 7.29±0.1μs 6.90±0.01μs 0.95 bench_ufunc_strides.UnaryIntContig.time_unary(<ufunc 'square'>, 1, 1, 'i')
- 2.10±0.06μs 1.98±0μs 0.94 bench_ufunc_strides.UnaryIntContig.time_unary(<ufunc 'square'>, 1, 1, 'b')
- 2.34±0.03μs 2.20±0.01μs 0.94 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in1(<ufunc 'right_shift'>, 1, 1, 1, 'l')
- 2.24±0.02μs 2.10±0.01μs 0.94 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in1(<ufunc 'subtract'>, 1, 1, 1, 'Q')
- 639±2ns 600±0.9ns 0.94 bench_ufunc_strides.BinaryIntContig.time_binary(<ufunc 'multiply'>, 1, 1, 1, 'b')
- 640±7ns 596±0.6ns 0.93 bench_ufunc_strides.BinaryIntContig.time_binary(<ufunc 'multiply'>, 1, 1, 1, 'B')
- 2.27±0.08μs 2.10±0μs 0.93 bench_ufunc_strides.BinaryIntContig.time_binary_scalar_in1(<ufunc 'subtract'>, 1, 1, 1, 'l')
Diffstat (limited to 'numpy/array_api/tests/test_indexing_functions.py')
0 files changed, 0 insertions, 0 deletions