Steve Streeting tweeted a few weeks ago: “Remember, experts are always wrong about disruptive tech, because it disrupts what they’re experts in.”. I’m happy I evangelise and work with such a disruptive technology and it will take time until it is bypassed by other technologies. And that other technologies will be probably be source-to-OpenCL-source compilers. At StreamHPC we therefore keep track of all these pre-compilers continuously.
Steve’s tweet got me triggered, since the stability-vs-progression-balance make changes quite hard (we see it all around us). Another reason was heard during the opening-speech of engineering world 2011 about “the cloud”, with a statement which went something like: “80% of today’s IT will be replaced by standardised cloud-solutions”. Most probably true; today any manager could and should click his/her “data from A to B”-report instead of buying a “oh, that’s very specialised and difficult” solution. But at the other side companies try to let their business live as long as possible. It’s therefore an intriguing balance.
So I came up with the idea to play my own devil’s advocate and try to disrupt GPGPU. I think it’s important to see what can disrupt the current parallel-kernel-execution model of OpenCL, CUDA and the others.
It’s end 2012, and here’s the situation:
- We did not get the world war III we were promised in movies and calendars (so we can put time&money in more useful stuff).
- Windows 8 for ARM and X86 was launched, trying to compete with the disruptive OS-technology ‘Android’.
- Linux gets a massive 200% growth on the desktop-market giving it a massive 3% market share.
- GPGPU brought the hybrid processors (CPU+GPU), which we call ‘the CPU’ again.
- GPGPU is now just “parallel computing” again.
- Parallel computing solutions are threads, messaging protocols and the evolved OpenCL 2.0.
- X86s get hardware-extensions to have ARM-support., to be able to run both “mobile widgets” and “power apps” on one processor. [a wild guess]
- Docking-stations (with keyboard, bigger screen, co-processor and local backup) for smart-phones and tablets are the most-sold desktops. [link]
For parallel computing StreamHPC does nice business worldwide and then “the unexpected” comes: the disruptive technology which will replace OpenCL and puts us out of business. What could do that?
GPUs brought us programmable shaders, so what is being developed now, that could be used in processor-technology now that could completely replace OpenCL in 2013?
- Biological processors. Grown brain tissue trained for specific purposes. Or at least a fly brain to get your car-navigation optimal. AI-style computing.
- Quantum computing. Really vague for straightforward thinking IT-folks, so great disruption.
- FPGAs. Always waiting to take over the world, which they will once it gets easier to program them.
Stuff like tertiary processing instead of binary, optical computing, ARM-processors and inter-mesh (internet as one big thinking mesh) would not replace but support OpenCL, so we stick with the above three – the fourth being the real disruptive one for us. I just tip the top of the ideas, to give space for your own thoughts. Please comment what you think.
The programmable brain, is that possible? If you read some scientific reports, it seems so.
First get is straight: for offices and homes most stuff is done; we don’t get many new revolutionary products in the office suite except maybe “MS Mind Map”. Instead we will see more done in functionality which assists the user in making less “dumb” mistakes. Also the “Traveller’s shortest route problem” and object-recognition pop up in many more situations. Therefore AI get a lot more important the coming years, which we know brains are best in. Many work has been done in the past years to create an interface between silicium and brain-tissue. There was much discussion what humans can own and what is owned by nature; the promising results (read: money-maker) gave some space to as long as the term “produced” was used instead of “grown”.
As the market of buses, platforms and OSes get more a matter of business than technique, the interaction with humans might get much more important. Like the interface of the iPhone influenced all interfaces on devices it opened up the market for tablet’s, because and PCs did not find the right means to get this interface in.
AI being much closer chaotic processes like human behaviour, the weather and other butterfly-effected systems, it could pick the winning platform. Even if AI is not the focus of the in-house technologies, it could have influences in a large market.
While biological processors might have much greater processing-power, they lack two things: precision and expected outcomes. This might be not a problem at all, but people need security and being able to trust technology. That’s why AI is expected to have greater growth in all that does something with probability and expectations, but not in (post) calculations. Also people will find it awkward to have live brains in their navigation-system, which will slow down acceptance.
I like the whole idea of using superposition (energy does not travel, but can be at several states + some probability calculations) to compute. What I’ve read the past years that is mostly great in laboratories. If you never heard of it, try to read the explanation on Wikipedia; it is too hard (for me) to explain just here. I’m not talking about quantum data-transport which can detect man-in-the-middle-attacks, really just computing.
Once the problems of this type of computer are solved (price, stability and get it actually to work), this can truly go fast in replacing certain types of computers. The CEO of D-Wave – one of the first companies who claimed real success with quantum-computing is quite quiet on his blog. But you know how this goes: this kind of things just need a few Eurekas to get there.
The promise of quantum computing is big. It could handle data with speed, not possible with those nanometer-approach. Like the biologic processor has a future in AI, quantum-computing will have a future in special subjects like encryption and other complex problems.
While it will have certain winners in terms of speed, it has the same problem as biological computers: trust. Getting this into mass-production might take another few years, so it will not disrupt the market on high pace. Compare to SSDs, while better than conventional harddisks, they have not replaced them.
Why program in software if you can program in hardware? Why send a signal around, while you can lay a path directly? FPGAs have proven themselves many times, but never got at the level of flexibility because they are hard to program. The lines of code needed to program comparable software, was in OpenCL a few factors(!) smaller than in FPGA-language VHDL.
There is spoken about OpenCL for FPGAs a lot. It makes sense, because it has great strength in parallel processing plus the OpenCL-method using kernels could describe FPGA-designs pretty well. Until now there still is not much news of FPGA-companies taking OpenCL really serious.
As OpenCL could be fit for FPGAs, GPU and CPU could be replaced by this approach. We know OpenCL is technology-portable, not performance-portable, but optimising-software could make a difference. The theoretical maximum speed of FPGAs can grow faster than GPUs since it is flexible. There have been many experiments with CPUs with a programmable part, which could now break through.
FPGAs have existed for years, why would they be able to replace current technologies now? They will keep finding their use in special purpose sectors, as they do now.
The most disruptive technology in GPGPU from the GPU-perspective seems to be hybrid processors, like ARM’s SoCs, Intel SandyBridge and upcoming AMD Fusion. Which way will they develop? Which CPU-design will take lead? It seems to be very promising and has pushed NVIDIA to focus on ARM.
OpenCL has a background in GPUs, but it is not GPUs which will make it big. The distance between the CPU and the GPU, wired by a PCIe-bus, is a bottle-neck if data cannot be streamed. Around 20 clock-cycles are needed for a round-trip of data. “Integrated” has won many before.
The bus-speed and bandwidth could be increased a lot with new techniques. What if the GPU gets connected via a special bus? When there is a demand, there is a solution.
It will take some years before CPU-manufacturers will settle down with all those current big changes around OpenCL (for parallel calculations), SoCs (aka hybrid computing) and ARM (as a base CPU-technology), that it actually is a good time to put something new in it. Also the change from computers to devices (set by un-upgradeable phones, tablets and Apple-computers) combined with internet-services (aka ‘cloud’) make it possible to introduce new technologies with ease. You want a quantum or brainy car-navigation-set? In doubt? It has a familiar touch interface, works on 2 penlites and thinks ahead.
OpenCL is a disruptive technology: it increases the calculation-power of computers which have high-end GPUs with a few factors. As discussed above, hybrid computing is another one, giving the GPU-only companies on the X86-market (read: NVIDIA) a hard time. ARM-support by Android, Apple and Windows was the third in a row, making it hard for some companies to catch up.
For StreamHPC it is sometimes hard to explain in simple words why OpenCL will be a mainstream technology end of this year and it is a good and wise investment, because people are just extrapolating current technologies. I can tell you: we don’t live in solution 1.0 or 2.0 any more, we live in solution-alternative A or B now.
I hope I gave you food for thoughts. And if you need to get those standard reports sped up, you know where to find us.