This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
Here is a patch to accelerate the __generate function for the
normal_distribution<double> class. The speed-up is quite significant,
the amount depending on which random number engine is used.
mt19937 +20%
mt19937_64 +30%
sfmt19937 +30%
sfmt19937_64 +30%
This patch introduces a header with optimizations for <random>. No
changes to existing code needed, this is a straight-forward
specialization. Tested on x86_64-linux. More optimizations follow,
there is still quite a bit of inefficiency in the existing interfaces.
OK to commit?
2012-09-21 Ulrich Drepper <drepper@gmail.com>
Optimize bulk mode for normal_distribution<double> for SSE3.
* configure.host: Define cpu_opt_bits_random.
* configure.ac: Substitute CPU_OPT_BITS_RANDOM.
* configure: Regenerated.
* include/Makefile.am (bits_headers): Add ${bits_host_headers}.
(bits_host_headers): Define.
* include/bits/random.tcc: Move __details::_Power_of_2 to...
* include/bits/random.h: ...here.
* include/std/random: Include <bits/opt_random.h>.
* config/cpu/i486/opt/bits/opt_random.h: New file.
* config/cpu/generic/opt/bits/opt_random.h: New file.
Attachment:
d-random-opt-normal-sse
Description: Binary data
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |