search for: fast_thread_local_rand

Displaying 2 results from an estimated 2 matches for "fast_thread_local_rand".

2014 Apr 18
4
[LLVMdev] multithreaded performance disaster with -fprofile-instr-generate (contention on profile counters)
On Fri, Apr 18, 2014 at 12:13 AM, Dmitry Vyukov <dvyukov at google.com> wrote: > Hi, > > This is long thread, so I will combine several comments into single email. > > > >> - 8-bit per-thread counters, dumping into central counters on overflow. > >The overflow will happen very quickly with 8bit counter. > > Yes, but it reduces contention by 256x (a thread
2014 Apr 23
4
[LLVMdev] multithreaded performance disaster with -fprofile-instr-generate (contention on profile counters)
...is 1. > After *approximately* 1 more update it becomes 3 > After *approximately* 2 more updates it becomes 7 > After *approximately* 4 more updates it becomes 15 > ... > After *approximately* 2^k more updates it becomes 2^(k+2)-1 > > The code would look like this: > if ((fast_thread_local_rand() & counter) == 0) > counter = 2 * counter + 1; > > Possible implementation for fast_thread_local_rand: > long fast_thread_local_rand() { > static __thread long r; > return r++; > } > Although I would try to find something cheaper that this. (Ideas?) > >...