Re: Optimize numeric multiplication for one and two base-NBASE digit multiplicands.
Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>
From: Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>
To: "Joel Jacobson" <joel@compiler.org>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2024-07-01T12:25:08Z
Lists: pgsql-hackers
"Joel Jacobson" <joel@compiler.org> writes: > Hello hackers, > > Attached patch introduces an optimization of mul_var() in numeric.c, > targeting cases where the multiplicands consist of only one or two > base-NBASE digits. Such small multiplicands can fit into an int64 and > thus be computed directly, resulting in a significant performance > improvement, between 26% - 34% benchmarked on Intel Core i9-14900K. > > This optimization is similar to commit d1b307eef2, that also targeted > one and two base-NBASE digit operands, but optimized div_var(). div_var() also has an optimisation for 3- and 4-digit operands under HAVE_INT128 (added in commit 0aa38db56bf), would that make sense in mul_var() too? > Regards, > Joel - ilmari
Commits
-
Optimise numeric multiplication for short inputs.
- ca481d3c9ab7 18.0 landed
-
Optimise numeric division for 3 and 4 base-NBASE digit divisors.
- 0aa38db56bf4 16.0 cited
-
Optimise numeric division for one and two base-NBASE digit divisors.
- d1b307eef281 15.0 cited