SFMT : SIMD-oriented Fast Mersenne Twister

by syoyo

SIMD-oriented Fast Mersenne Twister
http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/index.html

[En]

SFMT is SIMD-oriented derivative of MT(Mersenne Twister) and there are some improvements over MT.
SIMD-optimized SFMT runs twice faster than SIMD-optimized version of MT.

[Ja]

SFMT は SIMD 最適化された MT(Mersenne Twister) で、オリジナルの SIMD 最適化された MT に
比べてもさらに 2 倍の速度で疑似乱数を生成できるそうです。また、SFMT ではオリジナルの MT の問題も改善され、
さらに周期も長くなっています。す、すばらしい、、、

論文は MCQMC2006 で発表されていたのですね。レンダリング系しか見ていなかったので気づきませんでした…

これはもう、 WELL を使うこともなく、SFMT でぜんぶ事足りそうです。

http://lucille.sourceforge.net/blog/archives/000354.html

参考のために、Core2 2.16 GHz での non-SIMD な SFMT と SIMD 最適化な SFMT の速度結果です。


mbp: $ ./test-std-M19937 -s
32 bit BLOCK:1050ms for 100000000 randoms generation
32 bit SEQUE:1290ms for 100000000 randoms generation
64 bit BLOCK:1070ms for 50000000 randoms generation
64 bit SEQUE:1220ms for 50000000 randoms generation

mbp: $ ./test-sse2-M19937 -s
32 bit BLOCK:90ms for 100000000 randoms generation
32 bit SEQUE:420ms for 100000000 randoms generation
64 bit BLOCK:90ms for 50000000 randoms generation
64 bit SEQUE:260ms for 50000000 randoms generation

Advertisements