Qiyu8 · GitHub

· Creating environments · Discovering benchmarks ·· Uninstalling from virtualenv-py3.7-Cython. ·· Building ebfed05a for virtualenv-py3.7-Cython................................................ ·· Installing ebfed05a into virtualenv-py3.7-Cython. · Running 28 total benchmarks (2 commits * 1 environments * 14 benchmarks) [ 0.00%] · For numpy commit efaf210f (round 1/2): [ 0.00%] ·· Building for virtualenv-py3.7-Cython.................................................. [ 0.00%] ·· Benchmarking virtualenv-py3.7-Cython [ 1.79%] ··· Running (bench_linalg.Einsum.time_einsum_contig_contig--).............. [ 25.00%] · For numpy commit ebfed05a (round 1/2): [ 25.00%] ·· Building for virtualenv-py3.7-Cython.. [ 25.00%] ·· Benchmarking virtualenv-py3.7-Cython [ 26.79%] ··· Running (bench_linalg.Einsum.time_einsum_contig_contig--).............. [ 50.00%] · For numpy commit ebfed05a (round 2/2): [ 50.00%] ·· Benchmarking virtualenv-py3.7-Cython [ 51.79%] ··· bench_linalg.Einsum.time_einsum_contig_contig ok [ 51.79%] ··· =============== ========= dtype --------------- --------- numpy.float32 198±2μs numpy.float64 353±5μs =============== =========

[ 53.57%] ··· bench_linalg.Einsum.time_einsum_contig_outstride0 ok
[ 53.57%] ··· =============== =========
dtype
--------------- ---------
numpy.float32 224±2μs
numpy.float64 356±6μs
=============== =========

[ 55.36%] ··· bench_linalg.Einsum.time_einsum_mul ok
[ 55.36%] ··· =============== ==========
dtype
--------------- ----------
numpy.float32 487±10μs
numpy.float64 863±20μs
=============== ==========

[ 57.14%] ··· bench_linalg.Einsum.time_einsum_multiply ok
[ 57.14%] ··· =============== ===========
dtype
--------------- -----------
numpy.float32 115±0.5μs
numpy.float64 141±2μs
=============== ===========

[ 58.93%] ··· bench_linalg.Einsum.time_einsum_noncon_contig_contig ok
[ 58.93%] ··· =============== ============
dtype
--------------- ------------
numpy.float32 73.5±0.5μs
numpy.float64 74.0±0.7μs
=============== ============

[ 60.71%] ··· bench_linalg.Einsum.time_einsum_noncon_contig_outstride0 ok
[ 60.71%] ··· =============== ============
dtype
--------------- ------------
numpy.float32 59.6±0.2μs
numpy.float64 60.5±0.6μs
=============== ============

[ 62.50%] ··· bench_linalg.Einsum.time_einsum_noncon_mul ok
[ 62.50%] ··· =============== ============
dtype
--------------- ------------
numpy.float32 70.1±0.4μs
numpy.float64 72.0±0.5μs
=============== ============

[ 64.29%] ··· bench_linalg.Einsum.time_einsum_noncon_multiply ok
[ 64.29%] ··· =============== =========
dtype
--------------- ---------
numpy.float32 115±2μs
numpy.float64 140±2μs
=============== =========

[ 66.07%] ··· bench_linalg.Einsum.time_einsum_noncon_outer ok
[ 66.07%] ··· =============== ============
dtype
--------------- ------------
numpy.float32 2.73±0.1ms
numpy.float64 6.22±0.2ms
=============== ============

[ 67.86%] ··· bench_linalg.Einsum.time_einsum_noncon_sum_mul ok
[ 67.86%] ··· =============== ============
dtype
--------------- ------------
numpy.float32 99.3±0.4μs
numpy.float64 107±0.8μs
=============== ============

[ 69.64%] ··· bench_linalg.Einsum.time_einsum_noncon_sum_mul2 ok
[ 69.64%] ··· =============== ============
dtype
--------------- ------------
numpy.float32 99.0±0.3μs
numpy.float64 107±1μs
=============== ============

[ 71.43%] ··· bench_linalg.Einsum.time_einsum_outer ok
[ 71.43%] ··· =============== ============
dtype
--------------- ------------
numpy.float32 10.8±0.4ms
numpy.float64 22.1±0.3ms
=============== ============

[ 73.21%] ··· bench_linalg.Einsum.time_einsum_sum_mul ok
[ 73.21%] ··· =============== ============
dtype
--------------- ------------
numpy.float32 94.5±0.4μs
numpy.float64 98.1±0.3μs
=============== ============

[ 75.00%] ··· bench_linalg.Einsum.time_einsum_sum_mul2 ok
[ 75.00%] ··· =============== ============
dtype
--------------- ------------
numpy.float32 94.3±0.7μs
numpy.float64 98.7±0.4μs
=============== ============

[ 75.00%] · For numpy commit efaf210f (round 2/2):
[ 75.00%] ·· Building for virtualenv-py3.7-Cython..
[ 75.00%] ·· Benchmarking virtualenv-py3.7-Cython
[ 76.79%] ··· bench_linalg.Einsum.time_einsum_contig_contig ok
[ 76.79%] ··· =============== =========
dtype
--------------- ---------
numpy.float32 204±6μs
numpy.float64 355±5μs
=============== =========

[ 78.57%] ··· bench_linalg.Einsum.time_einsum_contig_outstride0 ok
[ 78.57%] ··· =============== =========
dtype
--------------- ---------
numpy.float32 226±6μs
numpy.float64 356±4μs
=============== =========

[ 80.36%] ··· bench_linalg.Einsum.time_einsum_mul ok
[ 80.36%] ··· =============== =============
dtype
--------------- -------------
numpy.float32 789±30μs
numpy.float64 1.00±0.01ms
=============== =============

[ 82.14%] ··· bench_linalg.Einsum.time_einsum_multiply ok
[ 82.14%] ··· =============== ===========
dtype
--------------- -----------
numpy.float32 117±0.2μs
numpy.float64 145±3μs
=============== ===========

[ 83.93%] ··· bench_linalg.Einsum.time_einsum_noncon_contig_contig ok
[ 83.93%] ··· =============== ============
dtype
--------------- ------------
numpy.float32 74.2±0.4μs
numpy.float64 76.0±0.6μs
=============== ============

[ 85.71%] ··· bench_linalg.Einsum.time_einsum_noncon_contig_outstride0 ok
[ 85.71%] ··· =============== ============
dtype
--------------- ------------
numpy.float32 59.4±0.3μs
numpy.float64 60.5±0.3μs
=============== ============

[ 87.50%] ··· bench_linalg.Einsum.time_einsum_noncon_mul ok
[ 87.50%] ··· =============== ============
dtype
--------------- ------------
numpy.float32 72.0±0.2μs
numpy.float64 72.9±0.2μs
=============== ============

[ 89.29%] ··· bench_linalg.Einsum.time_einsum_noncon_multiply ok
[ 89.29%] ··· =============== ===========
dtype
--------------- -----------
numpy.float32 115±0.5μs
numpy.float64 140±0.8μs
=============== ===========

[ 91.07%] ··· bench_linalg.Einsum.time_einsum_noncon_outer ok
[ 91.07%] ··· =============== =============
dtype
--------------- -------------
numpy.float32 5.35±0.07ms
numpy.float64 7.07±0.2ms
=============== =============

[ 92.86%] ··· bench_linalg.Einsum.time_einsum_noncon_sum_mul ok
[ 92.86%] ··· =============== ===========
dtype
--------------- -----------
numpy.float32 101±0.6μs
numpy.float64 109±0.5μs
=============== ===========

[ 94.64%] ··· bench_linalg.Einsum.time_einsum_noncon_sum_mul2 ok
[ 94.64%] ··· =============== ===========
dtype
--------------- -----------
numpy.float32 101±1μs
numpy.float64 109±0.7μs
=============== ===========

[ 96.43%] ··· bench_linalg.Einsum.time_einsum_outer ok
[ 96.43%] ··· =============== ============
dtype
--------------- ------------
numpy.float32 17.7±0.3ms
numpy.float64 25.8±0.5ms
=============== ============

[ 98.21%] ··· bench_linalg.Einsum.time_einsum_sum_mul ok
[ 98.21%] ··· =============== ============
dtype
--------------- ------------
numpy.float32 95.5±0.5μs
numpy.float64 101±0.8μs
=============== ============

[100.00%] ··· bench_linalg.Einsum.time_einsum_sum_mul2 ok
[100.00%] ··· =============== ============
dtype
--------------- ------------
numpy.float32 95.5±0.8μs
numpy.float64 98.8±0.5μs
=============== ============

   before           after         ratio
 [efaf210f]       [ebfed05a]
 <master>         <einsum-twooperands>
  • 1.00±0.01ms         863±20μs     0.86  bench_linalg.Einsum.time_einsum_mul(<class 'numpy.float64'>)
    
  •  25.8±0.5ms       22.1±0.3ms     0.86  bench_linalg.Einsum.time_einsum_outer(<class 'numpy.float64'>)
    
  •    789±30μs         487±10μs     0.62  bench_linalg.Einsum.time_einsum_mul(<class 'numpy.float32'>)
    
  •  17.7±0.3ms       10.8±0.4ms     0.61  bench_linalg.Einsum.time_einsum_outer(<class 'numpy.float32'>)
    
  • 5.35±0.07ms       2.73±0.1ms     0.51  bench_linalg.Einsum.time_einsum_noncon_outer(<class 'numpy.float32'>)
    

SOME BENCHMARKS HAVE CHANGED SIGNIFICANTLY.
PERFORMANCE INCREASED.

Read the original on github.com ↗