On Mon, Jul 1, 2024, at 15:14, Joel Jacobson wrote: > * 0001-Optimize-mul_var-for-var2ndigits-4.patch
Found a typo, fixed in new version. The int128 version is still slower though, I wonder if there is something that can be done to speed it up further. Below is a more realistic benchmark than just microbenchmarking mul_var(), not testing the int128 version, but the code for up to 2 NBASE-digits: ``` CREATE TABLE bench_mul_var (num1 numeric, num2 numeric); INSERT INTO bench_mul_var (num1, num2) SELECT random(0::numeric,1e8::numeric), random(0::numeric,1e8::numeric) FROM generate_series(1,1e8); SELECT SUM(num1*num2) FROM bench_mul_var; Time: 8331.953 ms (00:08.332) Time: 7415.241 ms (00:07.415) Time: 7298.296 ms (00:07.298) Time: 7314.754 ms (00:07.315) Time: 7289.560 ms (00:07.290) SELECT SUM(numeric_mul_patched(num1,num2)) FROM bench_mul_var; Time: 6403.426 ms (00:06.403) Time: 6401.797 ms (00:06.402) Time: 6366.136 ms (00:06.366) Time: 6376.049 ms (00:06.376) Time: 6317.282 ms (00:06.317) `` Benchmarked on a Intel Core i9-14900K machine. /Joel
v2-0001-Optimize-mul_var-for-var2ndigits-4.patch
Description: Binary data