Where Parallella's advantage comes in, is its grid architecture. Whereas a typical GPU today is "very very wide" (IE: an AMD 7750 does 512 operations at the same time), the Epiphany is a "grid", and each node of the grid can be doing different things.
I'm going to greatly simplify things down for you with this example (so experts out there... don't shoot me :-p). A GPU can execute 1 program, but that one program can do 512 operations at once.
On the other hand, the Epiphany-IV truly can run 64-different programs at once.... all taking different paths and doing their own things.
Epiphany-III and Epiphany IV perform "if statements" more or less how you'd expect a computer would do it. Which is the important bit... if-statements don't really slow down your program.
In contrast, the typical wide "wavefront GPU architecture"... the "if statement" basically halves the speed of your GPU. The GPU has to execute one "half" of the branch, and then later, it comes back to execute the other "half". (Its only "really" executing one program, but doing 512 of them at once. See what I mean?)
GPUs are a "wide" architecture... but Epiphany is the first "grid-based" supercomputer for ~$99. GPUs are very mature technologies... Epiphany is still in initial research (as far as the consumer market is concerned)
EDIT: In reality, a modern GPU supports maybe 4 to 8 different wavefronts (8 for the more expensive GPUs, maybe only 4 for the cheaper ~$99 GPUs). But each of those wavefronts can do hundreds of computations at once.
There always are other chips that I'm not aware of...
I think Parallela is easily the most accessible super computer, suitable for hobbyists. I expect a lot of interesting things to come out of it, the way Arduino opened up a lot of device hacking for people. I had passed on kickstarter on it and it wasn't until I got interested in deep belief networks that I kicked myself for not jumping in.
The GA's biggest weakness is probably the lack of software and libraries. On the other hand, you could essentially create software-configurable DSPs, or program the entire array to act as a single, traditional CPU core.
Using proper terms, GPUs are SIMT - Single Instruction Multiple Threads, while latest Epiphany is MIMD - Multiple Instructions, Multiple Data streams.
Off-course both probably can execute regular SIMD instructions sequentially. AMD GPUs can, likewise XeonPhi, NVIDIA GPUs are scalar, not sure about Epiphany.
Here's the instruction set for each individual CPU. Each one is small, and weak... but the combination of CPUs makes the architecture very different (and interesting) when compared against the typical SIMT / SIMD GPUs we have today. http://www.adapteva.com/wp-content/uploads/2012/10/epiphany_...
Its really just 64 (tiny) cores hooked up together. Of course, it can be SIMD if you wanted... (you just hook up all cores to run the same program). But in doing so, it will lose out in comparison to dedicated SIMD engines, like a GPU.
CUDA & OpenCL programs can essentially do the same thing, since there's no penalty for thread divergence between thread blocks. So, as long as you have enough lock-step behavior in your smaller work items, the larger groupings can do entirely different operations. Or, maybe said differently, you can roughly think of a GPU as a collection of SIMD units (in NVIDIA-jargon, these are SMs), all of which are allowed to run whatever vector code they want.
In reality, the top end AMD 7970 has ~32 compute units, while ~$130 AMD 7770 has ~10 compute units. Each compute unit can has 4 SIMD units, each SIMD unit executes 16 single-point floating operations per clock, from a pool of 16 "hyperthread-like" work-items that are queued up. (Total of 64 FLOPs per clock)
But... that is a bit difficult to say, now isn't it :-p
In comparison, Parallela's $99 unit has 16 discrete compute units, and their (unmade) higher-end offering will have 64 compute units. Both of which will operate with 2W of power.
Its a difference of scale. GPUs focus more on SIMD instructions, because graphics are innately matrix-based operations that very easily translate into SIMD. But if you are going to be doing unique operations per core (ie: lots and lots of branching on a single work-item), then Paralella's approach would give better performance.
So... yes... I over-simplified earlier, and got a few numbers wrong. But the concept is the same. Epiphany has no SIMD units at all, and each core instead focuses entirely on single-threaded performance. (at best, 2 Floating Point operations per clock with the super-scalar architecture). This makes it slower in the strictest sense... but "more agile", and able to handle branches and conditionals better than the GPUs.
Also, remember that Epiphany works with only 2W of power... while a GPU like the AMD 7970 works with something like 300W of power. So of course, the 7970 is going to do more (especially with faster GDDR5 RAM and a PCIe x16 connection feeding it). So it isn't really a fair comparison there either.
Nonetheless, Epiphany does see a few situations where it might perform better than a classic CPU and better than a classic GPU. Its just a different software architecture, focusing on a different problem niche.
Nonetheless, Epiphany does see a few situations where it might perform better than a classic CPU and better than a classic GPU. Its just a different software architecture, focusing on a different problem niche.
Do you have any examples?I can't think of any specific examples (perhaps an embedded system that needs to perform a pile of cryptographic operations?) but its ability to do a significant amount of processing on the 2W power footprint it is in a different class to current desktop CPUs and GPUs. Even if this $99 unit only does 1/8 of what a $99 GPU can do (caveat: I pulled that "1/8" figure from my arse) it'll be doing it on 1/60 of the power (based on GPU reviews where people have tried to compare power draw with GPU idle to power draw with GPU at 100% but everything else as idle as possible, which indicate modern GPUs pull between 120 and 150W (http://www.guru3d.com/articles_pages/radeon_hd_6850_6870_rev... is the first such analysis Google found)). That potential computation-per-watt (or computation-per-energy-$ if the cost is more important than the energy supply+dissipation problem) of units like this could be very useful. Of course where power input and heat dissipation are not massive concerns, current GPUs still win on computation-per-device and computation-per-hardware-$.
EDIT: Hopefully NVidia will give me CUDAndroid, so I have fun.
Example: http://www.kickstarter.com/projects/adapteva/parallella-a-su...