> In the ideal world, a program with loop unrolling and vectorization should always be faster, but in practice, the bigger binary size induces cache misses and may produce a slower problem.
The solution is to use abstract, arbitrary vectors in the ISA instead of packed SIMD and unrolled loops. RISC-V gets this right with their V extension.
Re:DRAM Prices in ‘Freefall’
by greglindahl on Thursday March 07, 2019 @08:23PM
(#19334339)
There are many different kinds of loop unrolling, and RISC-V's V extension is not the only one. Itanium had the same issue: the loop unrolling assist in the instruction set was not viewed by many compiler people as being sufficient.
Re:DRAM Prices in ‘Freefall’
by colejohnson66 on Friday March 08, 2019 @03:15PM
(#19341746)
ForwardCom has abitrary length vector support. http://www.forwardcom.info/ https://news.ycombinator.com/item?id=19340267
Re:DRAM Prices in ‘Freefall’
by greglindahl on Thursday March 07, 2019 @08:07PM
(#19334262)
What's the paradox? The compiler simply can't tell.
Historically, under some circumstances, a problem compiled with -Os, may paradoxically be faster than -O2, and -O2 may be faster than -O3. I think the situation is getting better now, and the optimizing level mostly works as advertised. But there's still some problems in automatic loop vectorization.