One note: bad speculation 32.x% means that 32.x% of the cycles[1] are wasted in shadow of a speculative recovery (almost certainty branch mis-predictions in your case), not that the misprediction rate is 32.x%. You can *also* get the misprediction rate from perf, if you ...
-
-
-
I'll clarify right then and there. I wanted to leave a small cliff hanger at the end there... Maybe I cut it too short. My fight with the predictor is actually mostly resolved with unrolling, but I'm still trying to squeeze a little more in pt6...
- Još 4 druga odgovora
Novi razgovor -
-
-
Nice - I expect the loop unrolling gains are at least in part due to out-of-order execution spotting things it can do while waiting for cache, and write-back buffering reducing load on the memory bus. I vectorise mostly with doubles (and only SSE2) but the principles are similar.
-
Well, it's in pt4, but the loop unrolling pays in spades here since that branch is sneaking in a big mis-prediction penalty since it's essentially depending on the random input data... But unrolling cuts that rate since we can change the amount of mis-prediction per work...
- Još 2 druga odgovora
Novi razgovor -
-
-
I think you got a slight issue in the quick sort code. PickPivot should return the pivot.
- Još 3 druga odgovora
Novi razgovor -
-
-
Besides the actual content of the blog posts - you've done some really nice work on those animations and such in the posts! Really helps understand the concepts more. If it was me, I likely would have been boring and just done screenshots and such!
-
Thanks! I don't know what got into me. I'm both proud and disgusted that I did it, and with the stone age tools that I did. Never again, at least not that way. Maybe next time I'll learn to program these with D3.
Kraj razgovora
Novi razgovor -
-
-
That is one hell of a write up. Most people would just say "here is my github link", well done!
-
Wait for pt. 4+5. It will get nasty. This was the kindergarten stuff :) Thanks for pinging me, glad you liked it ;)
Kraj razgovora
Novi razgovor -
Čini se da učitavanje traje već neko vrijeme.
Twitter je možda preopterećen ili ima kratkotrajnih poteškoća u radu. Pokušajte ponovno ili potražite dodatne informacije u odjeljku Status Twittera.