There is no OS level support, and there is nothing that rewrites existing libraries but I am hoping that programming languages themselves (Ruby, Python) get optimizations built in. An example would be hash lookups in Ruby: Why couldn't the GPU do this for us in certain use cases? You could see large performance increases for all apps written for the language with no code changes needed for thousands of developers.
You mean for a hash table? I don't think you'll be seeing that any time soon. Hash computation will almost certainly be faster on the primary cpu then just the scheduling and waiting overhead. And then the GPU isn't particularly good at any pointer chasing required for the rest of the lookup.
I assumed that in most cases when you deal with a hash table you want some data returned. That's perhaps not true in the case of adding to the hash table, but if you don't need the result you can just add it to a queue, and do it in any old thread, since it's clearly not performance sensitive.
No. From how I understand hsa works, you would be able to throw raw memory at the gpu, but you'd still need to write the code to tell what memory the gpu needs to look at. I'm not certain how much work is involved in redesigning your app for this -- the dev tools AMD has available are from november, and I don't think they'll have all the Kaveri stuff in them yet.