1 of 1 people found this helpful
I think that according to the description of your application you really would benefit with a Kaveri system and its unified memory. Having some experience with GPU coding, even a fast PCIE connection is a major bottleneck. Really, the golden rule for the programming of discrete GPUs is knowing the amount of computation in proportion to the amount of data you need to move. If your operations are very simple you can even slow down your application by using the GPU. It only pays off to move computations to the GPU when you need a LOT of operations for each given piece of data. So, even buying a very expensive GPU you wouldn't get better performance.
With Kaveri as you don't need to move data around the PCIE bus performance is dramatically faster for these cases. The problem is that as HSA it is a really recent technology I doubt there will be adequate support for .NET so that "automagically" your shaders run faster (although maybe someone more knowledgeable than I about these aspects could shed some light about this).
If you are really willing to invest a bit of time with this issue you can get easily better performance with Kaveri. I suppose you are really running simply a filter on your huge images. You could implement these operations in OpenCL making sure you use zero-copy buffers and it would fly:
As you are using .NET, you could use an OpenCL wrapper to integrate it in your app so you don't need to code in C/C++:
Running a filter on some image is the archetypical example of OpenCL code. You can find a bunch of examples around (even in the SDK). So, you shouldn't have much problem getting it to run. For example, this:
Thanks for this, I think I'll certainly look for my next machine to be Kaveri, if only to give it a try. However, really I'm looking for .NET to support the operations for me, as I've come quite far down the road of using the WPF 'Effect' shaders, and I can't justify the time to change over to something Kaveri compatible for the 0.0001% of users who might have an APU system.
I do find the systems very interesting though, reminds me of SGI NUMA systems, which always seemed like a better idea at the time!