Optimus
Member
Exophase said:Rotozoomer: 169.6 vs 162.5, Wiz + 4.19%
The image Optimus uses is 80x80, presumably 16bpp, which is actually still small enough to fit into dcache. What I don't know is this image is repeated in memory or not. I presume it is, which means that it won't fit in dcache and will therefore exercise memory latency on the reads. This will hold part of the time; where it's zoomed out the Wiz has the advantage, when it's zoomed in the Caanoo does.
It's 128 x 128 btw. It's not repeated more times in memory, it's tiled with an & 127 in the rotozoomer code.
Exophase said:Rotozoomer far: 73.8 vs 59.3, Wiz + 19.65%
Never fitting in dcache, this will heavily exercise memory latency, especially if the image is not tiled. And we can see a big difference in the results. If whatever is giving the Caanoo the advantage the rest of the time is normalized out (sorry but I think there's something in terms of software configuration that is, either refresh rate or time spent in kernel routines) then Wiz will have an even bigger advantage.
Indeed, it seems that Wiz wins over Caanoo at cache intensive tests.
Exophase said:Radial blur: 20.9 vs 21.8, Caanoo + 4.13%
This does appear to do memory to memory, but it's very slow, so it probably spends proportionately much more time working the ALU/cache and not latency sensitive operations, unless it's using huge LUTs which I imagine not. So Caanoo wins again.
I am actually using a lot of LUTs here. This should be extremely cache intensive. Why Wiz doesn't win in this case as it did it in the far rotozoomer, I don't know.
Exophase said:3D Bunny: 5.3 vs 5.1, Wiz + 3.77%
This is non-textured, so it's going to be very ALU intensive. There will be some memory latency involved for fetching vertex data, which probably won't all fit in cache. This will only have a small impact.
Well, it is textured. I use an environment map. Anyway, most of the CPU time is lost to transform all those 3d points and render the massive number triangles so I don't think fetching from a texture in memory would steal much performance here.
In the next post I am going to release the source code. I think it was time to do so, since I don't think I will work on the next version any time soon.
Last edited by a moderator: