[HN Gopher] Hash Functions for GPU Rendering
       ___________________________________________________________________
        
       Hash Functions for GPU Rendering
        
       Author : ingve
       Score  : 33 points
       Date   : 2021-05-22 06:59 UTC (1 days ago)
        
 (HTM) web link (www.reedbeta.com)
 (TXT) w3m dump (www.reedbeta.com)
        
       | nsajko wrote:
       | The empirical pseudorandomness testing situation seems kind of
       | sad. The suite used in the paper discussed here is unmantained
       | for many years, while its "competitor" PracRand/PractRand is not
       | maintained for the last couple of years. It seems like the author
       | of PractRand is the only one who tried to keep their
       | pseudorandomness testing suite relevant, but just the compiler
       | warnings that one gets while trying to compile it are quite
       | scary, so it seems that there's really no project in this space
       | that's in a remotely healthy condition :(
       | 
       | Here's a link to a Git mirror of PractRand, in case somebody
       | wants to contribute or fork it: https://github.com/tylov-
       | fork/PractRand
       | 
       | More broadly, it feels like the situation with non-cryptographic
       | pseudorandom generators and/or hashes isn't in a good place. I
       | have a hunch that making progress on that front requires effort
       | from expert scientists, but presumably the work isn't considered
       | grant-worthy, so there's not a lot of it?
       | 
       | On another note, a quite possibly stupid question; but why were
       | the Xoshiro PRNG variants not considered in the paper?
        
       | bullen wrote:
       | I'm looking for code that will execute the same on all CPU/GPUs,
       | I found this one so far:                 float
       | rand_from_seed(inout uint seed) {         int k;         int s =
       | int(seed);         if (s == 0)         s = 305420679;         k =
       | s / 127773;         s = 16807 \* (s - k \* 127773) - 2836 \* k;
       | if (s < 0)             s += 2147483647;         seed = uint(s);
       | return float(seed % uint(65536)) / 65535.0;       }
       | 
       | Any one know if the methods in this article will work too?
        
         | Jasper_ wrote:
         | Why wouldn't they? CPUs and GPUs should obey IEEE-754 floating
         | point rules, assuming you turn -ffast-math off...
        
           | bullen wrote:
           | Ok, we'll see. Thx!
        
       ___________________________________________________________________
       (page generated 2021-05-23 23:02 UTC)