Multi-Core Processors and the SDKs
The empty boxes tell IBM and ARM have a lot of influence. With NVIDIA’s current pace with introducing new products (hardware and CUDA), they could also take on ARM.
The matrix is restricted to current better-known compute technologies OpenCL, CUDA, Intel ArrBB, Pathscale ENZO, MS DirectCompute and AccelerEyes JacketLib.
X = All OSes, including MAC
D = Developer (private alpha or private beta)
P = Planned (as i.e. stated in Intel’s Q&A)
U = Unofficial (IBM’s OpenCL-SDK is promoted for their POWER-line)
L = Linux-only
? = Unknown if planned
Khronos OpenCL and protectionism
The greatest thing of market-economy is companies competing to come up with the best product, its biggest problem is protectionism. There are many ways to protect a product (DRM, exclusiveness, patents), of which I like fanboyism the most because the choice is with the buyers. There is much psychology around protectionism (such as leaders can permit to ignore others), because I want to talk about protectionism is a problem with OpenCL; manufacturers cannot protect their IP easily, since OpenCL is a free standard.
We geeky buyers and HPC-professionals love the battle for us by manufacturers, so we get the best hardware. The thing is that the manufacturer decides what is best. The way it probably will go the upcoming year is is that there is no competition other than in performance, but all processors just get support and brag about that. After that there could be emphasis on differences, including exclusive deals (video-encoder working fastest with a certain brand).
NVIDIA CUDA and exclusiveness
CUDA only works and will only work on NVIDIA-hardware (and maybe later some technology-partner’s hardware). I and others have complained the OpenCL-performance is lower (or incomplete – See Michael Simmons’ comment) than of CUDA’s for unnecessary (non-technical) reasons. We are forced to use CUDA on NVIDIA-hardware and since a lot is invested in CUDA, why use less user-friendly OpenCL? And since NVIDIA is good enough to get the job done, why support other hardware? They have no OpenCL 1.1 support, except old drivers from July 2010, which you can only download by entering their developers partner program.
This is very dangerous for now people and companies are forced to buy NVIDIA-hardware, while it should not be necessary.
Intel Array Building Blocks and silence
Once they get GPU-support, then you will hear from StreamHPC. Intel has bought a few interesting companies a few years ago, and has all the knowledge in house to create a product that will perform on multi-cores. As it currently works on X86 only, I see this product as the silent dragon – but for now mostly silent. Intel said something they will have DirectCompute-support end of this year. The company bets of several horses.
IBM, Sony and difficult development
Left out in the matrix are the many ways to program CELL-processors (C- and Assembly-extensions). IBM is very quiet about their OpenCL-development.
The product deserves to get more reviews! It currently only targets Tesla, but depending on their customer’s demands, more architectures will be supported. You see correctly there is a”D” for ARM.
Microsoft DirectCompute and Windows-only
Like NVIDIA they go for exclusiveness to let one product sell the other; it needs Windows, and is dependent on .NET and DirectX. So once you use one of the three, you should use the rest too. Or should you? For me it is just a Windows-only wrapper around OpenCL. Later I will show how to convert DirectCompute-kernels to OpenCL to support this. But well, it is Microsoft’s chance to enter the *NIX-dominated HPC-market.
Currently only CUDA, but maybe OpenCL soon. Since they made a library which makes it easy to program on GPUs I include them. Let me know in the comments if I should leave this product out or should add more alike products.
So what now?
StreamHPC is in favour of one common language and have the fights&diversification done pure at the hardware-level, but the market-economy doesn’t work that way. ARM and IBM can make a difference, primarily in the personal devices market resp. the HPC market. CUDA keeps dominating the market, but AMD Fusion is unique enough to break that for at least in the consumer-market. So there actually is the diversification.