API's provide a level of abtraction that is very useful for targeting different hardware. the only reason to use x86 would be for saving costs on designing the ISA. x86-64 is essentially x86 with 2x registers and 64bit support. at its core it is still plagued with the performance issues of x86. it's very wasteful and consequentially instruction decoding is a bottleneck in virtually every x86 cpu.
what you have suggested has sort of been done with SSE. i have wondered what a cpu that just did SSE would be capable of in terms of performance and compatibility, it's probably not so great. when you have that much compute density you really need to save memory bandwidth with streaming. SSE doesnt handle that as well as it could.
you dont update a compiler for a new architecture or in some cases even extensions, you start from scratch. that's why compilers take forever to mature.Yes not an easy work, but would be a lot faster to get performance improvement, update compilers and re-compile code.
And kill that f*cking x87, free some die space.
which has advantages over an open standard such as being much faster to support new features, no board of people filibustering API's = things get done.And JF : directcompute is proprietary.
also directcompute is arguably more vender neutral that opencl or opengl. khronos group allows for proprietary extensions in OGL&OCL where as DC doesnt. nvidia sort of abuses the extension system which is no surprise.
Bookmarks