From: Nishanth Aravamudan <nacc@linux.vnet.ibm.com>
To: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Cc: linuxppc-dev@lists.ozlabs.org
Subject: Re: new decimal conversion - seeking testers
Date: Thu, 12 Mar 2015 18:05:57 -0700 [thread overview]
Message-ID: <20150313010557.GA23117@linux.vnet.ibm.com> (raw)
In-Reply-To: <87fv99x17k.fsf@rasmusvillemoes.dk>
On 13.03.2015 [00:09:19 +0100], Rasmus Villemoes wrote:
> Hi,
>
> I've proposed a new implementation of decimal conversion for
> lib/vsprintf.c; see
> <http://thread.gmane.org/gmane.linux.kernel/1892035/focus=1905478>.
> Benchmarking so far shows 25-50% (depending on distribution of input
> numbers) improvement on x86_64 and 10-30% on various 32 bit platforms.
>
> Since the new code plays a little endianness game I would really
> appreciate it if someone here would run the test and verification code
> on ppc.
>
> The code is on github, https://github.com/Villemoes/dec, and it should
> be as simple as
>
> git clone https://github.com/Villemoes/dec.git
> cd dec
> make
> ./test # benchmark
> ./verify # correctness
>
> though I can't blame you if you want to inspect the code before
> compiling and running something some stranger asks you to download :-)
> See also the README file.
>
> If 'make' doesn't work out-of-the-box, I'd also like to hear from you.
On a ppc64le box:
./test
Distribution Function nsecs/conv Conv/1 sec
uniform([10, 2^64-1]) linux_put_dec 56.04 17785895
uniform([10, 2^64-1]) rv_put_dec 31.97 31190888
+/- -42.94% +75.37%
3 + neg_binom(0.05) linux_put_dec 29.55 32986465
3 + neg_binom(0.05) rv_put_dec 24.61 39416630
+/- -16.71% +19.49%
3 + neg_binom(0.10) linux_put_dec 22.16 43993836
3 + neg_binom(0.10) rv_put_dec 18.76 50767222
+/- -15.34% +15.40%
3 + neg_binom(0.15) linux_put_dec 18.97 51272565
3 + neg_binom(0.15) rv_put_dec 16.18 58328176
+/- -14.70% +13.76%
3 + neg_binom(0.20) linux_put_dec 16.79 57792783
3 + neg_binom(0.20) rv_put_dec 14.03 66418077
+/- -16.45% +14.92%
3 + neg_binom(0.50) linux_put_dec 10.81 89762669
3 + neg_binom(0.50) rv_put_dec 9.40 104336963
+/- -13.08% +16.24%
./verify
Using 16 threads
Checking [10, 10000000000] and [18446744063709551615,
18446744073709551615]
Thread 9: low range ok
Thread 13: low range ok
Thread 10: low range ok
Thread 15: low range ok
Thread 7: low range ok
Thread 5: low range ok
Thread 14: low range ok
Thread 0: low range ok
Thread 3: low range ok
Thread 1: low range ok
Thread 2: low range ok
Thread 4: low range ok
Thread 8: low range ok
Thread 12: low range ok
Thread 6: low range ok
Thread 11: low range ok
Thread 9: high range ok
Thread 10: high range ok
Thread 7: high range ok
Thread 13: high range ok
Thread 0: high range ok
Thread 14: high range ok
Thread 15: high range ok
Thread 5: high range ok
Thread 1: high range ok
Thread 8: high range ok
Thread 11: high range ok
Thread 6: high range ok
Thread 2: high range ok
Thread 12: high range ok
Thread 3: high range ok
Thread 4: high range ok
Thread 9: mid range ok
Thread 0: mid range ok
Thread 14: mid range ok
Thread 7: mid range ok
Thread 10: mid range ok
Thread 8: mid range ok
Thread 2: mid range ok
Thread 11: mid range ok
Thread 13: mid range ok
Thread 1: mid range ok
Thread 6: mid range ok
Thread 15: mid range ok
Thread 5: mid range ok
Thread 4: mid range ok
Thread 3: mid range ok
Thread 12: mid range ok
Distribution of lengths checked:
1 5
2 101
3 900
4 9000
5 90000
6 900000
7 9000000
8 90000000
9 900000000
10 9000000000
11 81
12 848
13 8384
14 83808
15 838192
16 8381904
17 83819040
18 838190304
19 8381903184
20 17866643425
On a ppc64 box:
./test
Distribution Function nsecs/conv Conv/1 sec
uniform([10, 2^64-1]) linux_put_dec 48.97 20478528
uniform([10, 2^64-1]) rv_put_dec 32.14 31915074
+/- -34.37% +55.85%
3 + neg_binom(0.05) linux_put_dec 25.60 38732189
3 + neg_binom(0.05) rv_put_dec 20.18 48828445
+/- -21.18% +26.07%
3 + neg_binom(0.10) linux_put_dec 18.70 52648284
3 + neg_binom(0.10) rv_put_dec 15.60 62915143
+/- -16.56% +19.50%
3 + neg_binom(0.15) linux_put_dec 15.27 64695363
3 + neg_binom(0.15) rv_put_dec 13.34 73279482
+/- -12.62% +13.27%
3 + neg_binom(0.20) linux_put_dec 13.25 74240237
3 + neg_binom(0.20) rv_put_dec 11.52 83711009
+/- -13.04% +12.76%
3 + neg_binom(0.50) linux_put_dec 9.14 106966472
3 + neg_binom(0.50) rv_put_dec 7.59 126799499
+/- -16.92% +18.54%
./verify
Using 12 threads
Checking [10, 10000000000] and [18446744063709551615,
18446744073709551615]
Thread 5: low range ok
Thread 10: low range ok
Thread 0: low range ok
Thread 4: low range ok
Thread 1: low range ok
Thread 2: low range ok
Thread 7: low range ok
Thread 8: low range ok
Thread 3: low range ok
Thread 9: low range ok
Thread 11: low range ok
Thread 6: low range ok
Thread 5: high range ok
Thread 10: high range ok
Thread 0: high range ok
Thread 7: high range ok
Thread 2: high range ok
Thread 4: high range ok
Thread 1: high range ok
Thread 8: high range ok
Thread 3: high range ok
Thread 9: high range ok
Thread 11: high range ok
Thread 6: high range ok
Thread 0: mid range ok
Thread 11: mid range ok
Thread 10: mid range ok
Thread 7: mid range ok
Thread 2: mid range ok
Thread 3: mid range ok
Thread 5: mid range ok
Thread 8: mid range ok
Thread 4: mid range ok
Thread 6: mid range ok
Thread 1: mid range ok
Thread 9: mid range ok
Distribution of lengths checked:
1 5
2 97
3 900
4 9000
5 90000
6 900000
7 9000000
8 90000000
9 900000000
10 9000000000
11 61
12 636
13 6288
14 62856
15 628644
16 6286428
17 62864280
18 628642728
19 6286427388
20 15899982569
-Nish
next prev parent reply other threads:[~2015-03-13 1:06 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-12 23:09 new decimal conversion - seeking testers Rasmus Villemoes
2015-03-13 1:05 ` Nishanth Aravamudan [this message]
2015-03-19 20:59 ` Rasmus Villemoes
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150313010557.GA23117@linux.vnet.ibm.com \
--to=nacc@linux.vnet.ibm.com \
--cc=linux@rasmusvillemoes.dk \
--cc=linuxppc-dev@lists.ozlabs.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.