Skip to content

Add comparative benchmarks with numpy - #2915

Open
Alex-PLACET wants to merge 13 commits into
xtensor-stack:masterfrom
Alex-PLACET:add_comparative_benchmarks_with_numpy
Open

Add comparative benchmarks with numpy#2915
Alex-PLACET wants to merge 13 commits into
xtensor-stack:masterfrom
Alex-PLACET:add_comparative_benchmarks_with_numpy

Conversation

@Alex-PLACET

@Alex-PLACETAlex-PLACET commented May 13, 2026

Copy link
Copy Markdown
Contributor

Checklist

  • The title and commit message(s) are descriptive.
  • Small commits made to fix your PR have been squashed to avoid history pollution.
  • Tests have been added for new features or bug fixes.
  • API of new functions and classes are documented.

Description

xtensor vs NumPy Benchmark Report

Metric: cpu_time
Executable: /home/alexisp/Dev/quantstack/xtensor/build/benchmark/benchmark_xtensor
Host: Quantstacklaptopalexis
CPU scaling enabled: True
ASLR enabled: True

Per-function summary

FunctionSamplesNumPy / xtensor geomeanBestWorstVerdict
acos21.14x1.01x1.29xxtensor faster
acosh21.98x1.84x2.14xxtensor faster
add21.50x1.10x2.04xxtensor faster
amax_all20.56x0.22x1.39xnumpy faster
amax_axis020.47x0.11x1.97xnumpy faster
amax_axis121.08x0.35x3.37xxtensor faster
amin_all20.55x0.22x1.38xnumpy faster
amin_axis020.46x0.11x1.95xnumpy faster
amin_axis121.09x0.35x3.38xxtensor faster
asin21.99x1.86x2.14xxtensor faster
asinh21.37x1.15x1.65xxtensor faster
atan21.44x1.39x1.49xxtensor faster
atanh22.36x2.35x2.38xxtensor faster
cbrt21.43x1.16x1.78xxtensor faster
ceil21.29x1.03x1.61xxtensor faster
cos22.85x2.82x2.87xxtensor faster
cosh20.70x0.55x0.90xnumpy faster
divide21.11x1.07x1.15xxtensor faster
exp20.93x0.92x0.95xnumpy faster
exp220.88x0.83x0.94xnumpy faster
expm121.32x0.77x2.26xxtensor faster
floor21.29x1.03x1.62xxtensor faster
hypot23.85x3.70x4.02xxtensor faster
log21.69x1.37x2.08xxtensor faster
log1022.15x2.03x2.26xxtensor faster
log1p22.12x2.07x2.18xxtensor faster
log221.70x1.39x2.08xxtensor faster
mean_all21.13x0.45x2.80xxtensor faster
mean_axis020.58x0.10x3.49xnumpy faster
mean_axis121.34x0.49x3.67xxtensor faster
multiply21.49x1.14x1.95xxtensor faster
power21.20x1.18x1.21xxtensor faster
prod_all22.06x1.24x3.41xxtensor faster
prod_axis020.39x0.09x1.76xnumpy faster
prod_axis122.17x1.26x3.74xxtensor faster
round21.01x0.96x1.07xsimilar
sin22.93x2.78x3.09xxtensor faster
sinh24.95x2.60x9.43xxtensor faster
sqrt21.47x1.02x2.12xxtensor faster
subtract21.46x1.10x1.92xxtensor faster
sum_all21.05x0.45x2.42xsimilar
sum_axis020.53x0.11x2.59xnumpy faster
sum_axis121.16x0.50x2.70xxtensor faster
tan23.76x3.03x4.68xxtensor faster
tanh22.10x2.04x2.16xxtensor faster
trunc21.27x1.01x1.61xxtensor faster

Detailed results

FunctionSizextensorNumPyNumPy / xtensorVerdict
acos6411736 ns15193 ns1.29xxtensor faster
acos5121229374 ns1237327 ns1.01xsimilar
acosh6415689 ns33562 ns2.14xxtensor faster
acosh5121199834 ns2203597 ns1.84xxtensor faster
add64955 ns1945 ns2.04xxtensor faster
add512153794 ns169934 ns1.10xxtensor faster
amax_all641817 ns2531 ns1.39xxtensor faster
amax_all512236977 ns52722 ns0.22xnumpy faster
amax_axis0641849 ns3644 ns1.97xxtensor faster
amax_axis0512617663 ns68255 ns0.11xnumpy faster
amax_axis1641828 ns6169 ns3.37xxtensor faster
amax_axis1512237983 ns82628 ns0.35xnumpy faster
amin_all641834 ns2539 ns1.38xxtensor faster
amin_all512238350 ns52852 ns0.22xnumpy faster
amin_axis0641834 ns3578 ns1.95xxtensor faster
amin_axis0512640032 ns69011 ns0.11xnumpy faster
amin_axis1641828 ns6176 ns3.38xxtensor faster
amin_axis1512237288 ns83483 ns0.35xnumpy faster
asin647039 ns15066 ns2.14xxtensor faster
asin512501518 ns931285 ns1.86xxtensor faster
asinh6420240 ns33346 ns1.65xxtensor faster
asinh5121859154 ns2129994 ns1.15xxtensor faster
atan6410916 ns16299 ns1.49xxtensor faster
atan512650837 ns907467 ns1.39xxtensor faster
atanh6417741 ns42180 ns2.38xxtensor faster
atanh5121111676 ns2615130 ns2.35xxtensor faster
cbrt6430489 ns54123 ns1.78xxtensor faster
cbrt5121963793 ns2271448 ns1.16xxtensor faster
ceil64661 ns1065 ns1.61xxtensor faster
ceil512105453 ns108167 ns1.03xsimilar
cos646448 ns18534 ns2.87xxtensor faster
cos512382425 ns1079464 ns2.82xxtensor faster
cosh6415696 ns14173 ns0.90xnumpy faster
cosh5121593010 ns871540 ns0.55xnumpy faster
divide642176 ns2503 ns1.15xxtensor faster
divide512154884 ns165645 ns1.07xxtensor faster
exp649806 ns9310 ns0.95xnumpy faster
exp512628211 ns577400 ns0.92xnumpy faster
exp2649945 ns9299 ns0.94xnumpy faster
exp2512720145 ns594419 ns0.83xnumpy faster
expm16414401 ns32504 ns2.26xxtensor faster
expm15121129295 ns873062 ns0.77xnumpy faster
floor64661 ns1068 ns1.62xxtensor faster
floor512104207 ns107347 ns1.03xsimilar
hypot643261 ns13110 ns4.02xxtensor faster
hypot512209323 ns773540 ns3.70xxtensor faster
log648547 ns17819 ns2.08xxtensor faster
log512552289 ns753956 ns1.37xxtensor faster
log10649918 ns22437 ns2.26xxtensor faster
log10512651181 ns1324825 ns2.03xxtensor faster
log1p649587 ns20868 ns2.18xxtensor faster
log1p512607629 ns1260547 ns2.07xxtensor faster
log2649192 ns19113 ns2.08xxtensor faster
log2512595742 ns826105 ns1.39xxtensor faster
mean_all641134 ns3178 ns2.80xxtensor faster
mean_all512123322 ns55821 ns0.45xnumpy faster
mean_axis0641300 ns4531 ns3.49xxtensor faster
mean_axis0512612688 ns58849 ns0.10xnumpy faster
mean_axis1641188 ns4356 ns3.67xxtensor faster
mean_axis1512122792 ns60268 ns0.49xnumpy faster
multiply64964 ns1883 ns1.95xxtensor faster
multiply512150913 ns171559 ns1.14xxtensor faster
power6427760 ns33686 ns1.21xxtensor faster
power5121814290 ns2146596 ns1.18xxtensor faster
prod_all641770 ns6041 ns3.41xxtensor faster
prod_all512227693 ns282008 ns1.24xxtensor faster
prod_axis0641834 ns3231 ns1.76xxtensor faster
prod_axis0512632740 ns54496 ns0.09xnumpy faster
prod_axis1641789 ns6687 ns3.74xxtensor faster
prod_axis1512228785 ns287819 ns1.26xxtensor faster
round641613 ns1731 ns1.07xxtensor faster
round512112281 ns107590 ns0.96xsimilar
sin646720 ns18711 ns2.78xxtensor faster
sin512385969 ns1192133 ns3.09xxtensor faster
sinh6413669 ns35475 ns2.60xxtensor faster
sinh512165511 ns1560352 ns9.43xxtensor faster
sqrt643246 ns6885 ns2.12xxtensor faster
sqrt512209269 ns212644 ns1.02xsimilar
subtract64999 ns1923 ns1.92xxtensor faster
subtract512154002 ns170123 ns1.10xxtensor faster
sum_all641232 ns2978 ns2.42xxtensor faster
sum_all512127564 ns58006 ns0.45xnumpy faster
sum_axis0641224 ns3168 ns2.59xxtensor faster
sum_axis0512630034 ns68078 ns0.11xnumpy faster
sum_axis1641215 ns3279 ns2.70xxtensor faster
sum_axis1512125159 ns62334 ns0.50xnumpy faster
tan645578 ns26097 ns4.68xxtensor faster
tan512436254 ns1321647 ns3.03xxtensor faster
tanh6416555 ns33742 ns2.04xxtensor faster
tanh512992713 ns2146525 ns2.16xxtensor faster
trunc64660 ns1062 ns1.61xxtensor faster
trunc512101855 ns102982 ns1.01xsimilar

@Alex-PLACETAlex-PLACET self-assigned this May 13, 2026
@Alex-PLACET
Alex-PLACET marked this pull request as ready for review May 18, 2026 12:03
@Alex-PLACET
Alex-PLACETforce-pushed the add_comparative_benchmarks_with_numpy branch from 921eb85 to 4e39a25CompareMay 20, 2026 11:23
@codspeed-hq

codspeed-hqBot commented May 20, 2026

Copy link
Copy Markdown
Contributor

Merging this PR will not alter performance

✅ 255 untouched benchmarks


Comparing Alex-PLACET:add_comparative_benchmarks_with_numpy (78bcf9d) with master (dd857e5)

Open in CodSpeed

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@Alex-PLACET