Skip to content
Snippets Groups Projects

RNG SIMD

Merged Michael Kuron requested to merge philox-simd into master

I've vectorized the Philox and AES-NI RNGs, fixes #12 (closed). I had to add a very minimal integer vectorization that only supports int32, makeVec, +, and loop counters. Also, the RNGNode now needs to know already during construction how it's vectorized, which is ugly, but could only be resolved by a better type system (#20 (closed)). For the same reason, it is not possible to use a vectorized float RNG with double fields or vice versa. Also, we essentially discard half the random numbers in double precision mode because otherwise the number of variables we return would change between the vectorized and non-vectorized version, which is incompatible with the interface.

For the tests, we need to add pip3 install randomgen to the Dockerfile.

Edited by Michael Kuron

Merge request reports

Pipeline #30201 passed

Pipeline passed for 6c0c3ecd on philox-simd

Test coverage 89.56% (0.13%) from 1 job

Merged by Markus HolzerMarkus Holzer 4 years ago (Feb 11, 2021 1:49pm UTC)

Loading

Pipeline #30203 passed

Pipeline passed for 9919c193 on master

Test coverage 89.56% (0.13%) from 1 job

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
Please register or sign in to reply