Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[LLVM] Add random seed support #2297

Merged
merged 18 commits into from
May 3, 2021

Conversation

victoriacity
Copy link
Member

Related issue = close #2251

This is the last of 3 PRs regarding #2251, which allows for specification of random seed when initializing Taichi runtime. With different random seeds, two Taichi runtime contexts on the same machine (presumably) and backend will produce different random number sequences, and vice versa. The corresponding test_random_seed_per_program test fails before this PR and passes after.

Due to the parallel nature of Taichi runtime, the random seed is multiplied by 2^20 to obtain the initial random state for the RNG, assuming that number of threads is well below 2^20 so that no two threads share the same random state.

As the title suggests, specification of random seed only works for CPU and CUDA backends. For OpenGL and Metal backends the random seed always varies from run to run.

[Click here for the format server]


Copy link
Contributor

@ljcc0930 ljcc0930 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Random number generator improvements
3 participants