Both hash functions and PRNGs produce deterministic yet apparently unpredictable outputs. However, they are designed with different goals in mind.

  • Many PRNGs are optimized for good statistical behavior when a single generator is advanced sequentially, but they can exhibit noticeable artifacts when many streams are run in parallel with related seeds.
  • Hash functions are specifically designed to handle related input (the avalanche effect)

For GPU applications, it is thus useful to hash the input seeds first before feeding them to a PRNG. Alternatively, one can just use hash functions instead of traditional PRNG

Reference