[Git][cmucl/cmucl][rtoy-xoro-default] Use the xoroshiro vop on sparc
Raymond Toy
rtoy at common-lisp.net
Thu Dec 28 17:53:37 UTC 2017
Raymond Toy pushed to branch rtoy-xoro-default at cmucl / cmucl
Commits:
448e9970 by Raymond Toy at 2017-12-28T09:53:39-08:00
Use the xoroshiro vop on sparc
The vop greatly speeds up the generator on sparc. The time to
generate 10,000,000 single-floats (on a 1 GHz Ultrasparc 3i) is:
mt19937: 1.32 sec
xoroshiro: 1.03 sec
So xoroshiro is 22% faster than mt19937.
- - - - -
1 changed file:
- src/code/rand-xoroshiro.lisp
Changes:
=====================================
src/code/rand-xoroshiro.lisp
=====================================
--- a/src/code/rand-xoroshiro.lisp
+++ b/src/code/rand-xoroshiro.lisp
@@ -206,15 +206,17 @@
;;;; Random entries:
-#+x86
+;; Sparc and x86 have vops to implement xoroshiro-gen that are much
+;; faster than the portable lisp version. Use them.
+#+(or x86 sparc)
(declaim (inline xoroshiro-gen))
-#+x86
+#+(or x86 sparc)
(defun xoroshiro-gen (state)
(declare (type (simple-array double-float (2)) state)
(optimize (speed 3) (safety 0)))
(vm::xoroshiro-next state))
-#-x86
+#+(or x86 sparc)
(defun xoroshiro-gen (state)
(declare (type (simple-array double-float (2)) state)
(optimize (speed 3) (safety 0)))
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/commit/448e99705bdfbc1a9e77756e3bb5123c95575dc1
---
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/commit/448e99705bdfbc1a9e77756e3bb5123c95575dc1
You're receiving this email because of your account on gitlab.common-lisp.net.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/cmucl-cvs/attachments/20171228/921d92c3/attachment.html>
More information about the cmucl-cvs
mailing list