IMO 60% as fast is not "far away". Clearly if apple wanted to use more power and/or transistors they could improve the performance further.
Apple's so competitive in that space that intel's actually in retreat in the mobile space.
Sure Intel is much faster in multicore, but that's because it has much more power to work with. Intel's has tried to scale decent performance to lower power levels, it hasn't worked out particularly well so far.
The more interesting question is will Apple have better luck scaling 64-bit arms up than intel has had with scaling down.
By which I mean that, I think 'performance' is a slippery eel of a concept. The A10 fits in my pocket and and the Xeon Phi does not...or rather it doesn't in a way that provides me with useful computations...and the latest i7 doesn't hold a candle to the GPU in my $40 graphics card when I want to rotate the 16 million pixels my camera stuffs into a RAW file...and if I want to build a Kubernetes cluster, I can throw Raspberry Pi's at the problem.
I think I understand your point (unless you meant iPhone 7?), but interestingly, recent Intel processors have impressively powerful graphics processors built in: https://software.intel.com/sites/default/files/managed/c5/9a.... So if you were using full capacity of that i7, I think it would beat your graphics card handily. The issue is that practically no one is writing code to use the full capabilities of these modern CPU's. A friend did a write up here: http://lemire.me/blog/2016/09/19/the-rise-of-dark-circuits/
Even without the built-in GPU, I'd bet that the right software running on that i7 would blow away that $40 graphic card. I think problem is that we don't really have the right tools for writing low level multi-core software. Image rotation parallelizes and vectorizes really well, the x64 side of those processors have excellent vector capabilities, but it still requires hand coding to get top performance.
if I want to build a Kubernetes cluster, I can throw Raspberry Pi's at the problem
A thought experiment: how fast a cluster could you make from a few dozen iPhone 7's connected wirelessly? The processors are surprisingly fast, and I think they support 802.11ac at gigabit plus speeds. Could you possibly do distributed computing on an ad-hoc network of iPhones that happen to be nearby? An app with a sandboxed work queue that accepts local connections? There's lots of reasons it makes no practical sense, but it would be quite a demo.
But as an accelerator to a CPU, it seems like a phenomenally underutilized resource. It has a direct connection to RAM, a 128MB cache, and the high tier can do over a TFlop/s[1]. For use cases like Ben mentioned of rotating a RAW file that fits in this cache, it's almost a perfect fit, yet almost no-one would think of using it so it stays dark.
Why is this? Not too many years ago it would have been thought insane to have a TFlop of unused capability on die, and now it's a non-story. I don't think it's because we have no use for the speed-up. Rather I think that the tooling just isn't there for most programmers to be able to make use of it.
I've played this game hoping for a linux laptop with a non-crappy GPU and I didn't want to play games with nvidia feeding pixels through the intel GPU to get to the screen. Very few laptops have the Iris chips. The lenovo 721s has the iris 540, but they locked linux out with their broken BIOS that disables AHCI. The XPS 13 has it as an option, but you have to get the I7 and the 3200x1800 shiny/relective screen that halves your battery life.
I did manage to buy an Iris 540 NUC, nice little machine and the GPU seems to keep up quite well for the light usage I've tried. Most web games, full screen 1080P movies, and minecraft.
Thoughting on an iPhone cluster, the hurdle seems to be software that is designed to create friction against implementing such a thing: drivers and firmware in particular.
[1]: https://www.pugetsystems.com/labs/hpc/Skylake-S-i7-6700K-and...
[2]: http://www.newegg.com/Product/Product.aspx?Item=N82E16819117...
[3]: http://www.newegg.com/Product/ProductList.aspx?Submit=ENE&N=...
[4]: https://www.techpowerup.com/gpudb/1990/geforce-gt-710
[5]: https://www.darktable.org/usermanual/ch10s02s04.html.php
You are right, and I stand (mostly) corrected. Alternatively said for Skylake, with unrolled 256-bit FMA, you can calculate close to 16 single-precision floating point calculations per cycle per (physical) core: two vector loads, one vector store, and the 8x32-bit FMA itself.
At 4 GHz this is about 100 Gflop/s per core. For 4 cores this is about the same 350 Gflop/s as the $40 graphics card you pointed to. And realistically, loop overhead will knock you down another 10%, and if you run for any length of time you probably be thermally throttled back to something closer to the 200 Gflop/s you cite.
My general question about why no one is interested in using the built-in Tflop/s capable side of the Skylake die stands, but I was wrong to think that a well-tuned desktop processor could come anywhere close to the price/performance of a cheap graphics card for raw flop/s. Thanks for pointing out the real numbers.
Try the i7-6770HQ if you want better graphics performance.
For simple, highly parallelized floating-point number crunching nearly any GPU will blow your i7 out of the water, no matter how you program your i7. Only a tiny fraction of the surface area of the i7 has stuff useful for that task, but GPUs are designed for that works. Conversely, any GPU will be absolutely terrible at running Microsoft Word.