[HN Gopher] Compilers, Hands-Off My Hands-On Optimizations (2016...
___________________________________________________________________
Compilers, Hands-Off My Hands-On Optimizations (2016) [pdf]
Author : mpweiher
Score : 14 points
Date : 2022-07-05 19:27 UTC (3 hours ago)
(HTM) web link (users.ece.cmu.edu)
(TXT) w3m dump (users.ece.cmu.edu)
| boulos wrote:
| Even at the time, this was no longer really applicable on Sandy
| Bridge and beyond. The point of their volatile macros was just to
| prevent reordering. It _can_ matter, but it 's pretty rare.
|
| From the last paragraph before the Conclusion:
|
| > On the Nehalem there is a significant performance differ- ence
| between the two implementations on both compilers. Even though
| both implementations have the same instruc- tion order, the
| compiler reorders the intrinsic implementa- tion, but does so
| sub-optimally. On the Sandy Bridge the performance difference is
| slight. We examined the assem- bly code generated by both the icc
| and gcc and in the two cases ordering of the instructions are not
| the same as the initial ordering, so the intrinsics do not
| maintain the order- ing. In the previous experiment (Figure 12)
| the ordering was not close enough to an optimal one and from the
| compiler scheduled implementation the compiler did not achieve
| the same performance as the expert. We suspect that because of
| its large reorder windows, the Sandy Bridge is less sensitive to
| the instruction order than the Nehalem.
| delusional wrote:
| Am I understanding correctly that the contribution here is using
| macros to define volatile inline asm blocks in C? That seems
| pretty thin to me considering that there's no comparison to a raw
| asm assembled and linked executable.
___________________________________________________________________
(page generated 2022-07-05 23:01 UTC)