On Friday, 4 December 2020 at 20:26:17 UTC, data pulverizer wrote:
[snip]
I see, looking at some of the code, field case is literally
doing the indexing calculation right there. I guess ndslice is
doing the same thing just with "Mir magic" an in the
background? Still, ndslice is able to get a consistent higher
rate of flops than the field case - interesting. One thing I
discovered about these kinds of plots is that introducing log
scale or two particularly for timed comparisons can make the
differences between different methods that look close clearer.
A log plot might show some consistent difference between the
timings of ndslice and the field case. Underneath they should
be doing essentially the same thing so teasing out what is
causing the difference would be interesting. Is Mir doing some
more efficient form of the indexing calculation than naked
field calculations?
I'm still not sure why slice is so slow. Doesn't that
completely rely on the opSlice implementations? The choice of
indexing method and underlying data structure? Isn't it just a
symbolic interface that you write whatever you want?
Ilya might have a better ability to answer that than me.