Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
The Supercomputer In Your Pocket: Metal and Swift (realm.io)
98 points by astigsen on May 29, 2015 | hide | past | favorite | 37 comments


Oh, it has a transcript! With code samples! I don't even know what Realm does but I like them already.


They make a database alternative to CoreData/SQLite.


And subtitles! All talks should be done like this.


How far back in time does one need to go for a state of the art iPhone to rank on the TOP500 LINPACK benchmark?


1994, just the third year the Top500 list existed. http://www.top500.org/statistics/perfdevel/ According to http://www.cnet.com/products/apple-iphone-6-plus/2/ the iPhone 6 gets 1.3 gigaflops.

Edit: Ah, I thought it looked low! That number is just for the iPhone CPU. I can't find an official number for the GPU but one Linpack run got 1,023 Gflops. That means it would rank in 2004.


The iPhone 6 CPU is significantly faster than 1.3 gigaflops. The 5s is capable of 10.4 gigaflops on LINPACK, and the 6 is faster still. Would have made Top500 in the late 90s.


My experience is that iPhone 6 GPU can be up to 50-70 times faster than the CPU - for single precision floating point (i.e. Swift running on the CPU, and Metal on the GPU). See http://memkite.com/blog/2014/12/18/gpgpu-performance-of-swif... for an example (comparison with Accelerate framework)


That's almost a "what not to do" for using Accelerate. You're introducing multiple passes over the data, and introducing extra dummy arrays that need to be passed over as well, which blows up the load-store traffic further. You're also using vvpowf to compute a simple reciprocal, which is wildly inefficient.

I don't mean to pick on you, but it's a misleading comparison. A basic transform that only gets rid of the extra working arrays and does no other optimizations is ~5-10x faster in my quick timings:

    vvexpf(&result, &negx, &localcount)
    let one = Float(1)
    vDSP_vsadd(&result, 1, &one, &result, 1, localcount)
    vDSP_svdiv(&one, &result, 1, &result, 1, localcount)


Do you have a source? I couldn't find many people actually running Linpack on iPhones.



That is true for CPU, how about GPU? Tegra K1 is >1Tflop which would be the total computing power available in 1994.


Titan Z can do 8 teraflops. From the Top500 List - June 2001, the #1 system at Lawrence Livermore could do R(max) 7 teraflops and R(peak) 12 teraflops.

I now see that I missed the gist of this, which was about mobile performance. The Tegra X1 can do a teraflop, which would put it at #2 on the Top500 List - June 1998.


Tegra K1 is 365 GFLOPs @ 950 MHz. Tegra X1 is > 1 TFLOP @ ~1GHz.

http://www.anandtech.com/show/9289/the-nvidia-shield-android...


"LINPACK" (without qualification) is a double-precision benchmark, and doesn't measure raw compute flops, but what is actually achieved solving a linear system. K1 does double-precision at a rate of 1/24, and good libraries typically achieve ~90% of rpeak on similar hardware, so something around 13.7 gflops is a reasonable estimate.


And the latest Tegra X1 is twice as powerful as the K1, which was already an amazing chip.

The even more amazing part is the energy usage of these new mobile chips.


Re: Linpack Run - given the iPhone 5S ranks as 10 Gigaflops, hard to see the iPhone 6 at more than 20 Gigaflops.


I found this article the other day http://tek.io/1PTesWY

System architecture and usage change everything, Cray sustained bandwidth made a complete difference even compared to core i series.


Metal is Apple’s iOS framework for GPU programming. The slides are about GPU programming using Metal, Swift, and some Objective-C for features such as shaders.


This is really inspiring stuff. Highly recommend the author's blog[1] (sadly on blogspot) and GitHub page[2] too.

His last section on 'advanced particle systems' might be able to be sped up considerably by using an appropriate neighbour list algorithm (e.g. parallel Verlet) which would scale as O(N) instead of O(N^2). I'm working on something similar myself at the moment, though with far fewer particles, but it really is inspiring to see it work with so many on a mobile device.

Can't wait for WWDC to see if there are any updates to Metal (and SceneKit for that matter).

[1] http://flexmonkey.blogspot.co.uk [2] https://github.com/FlexMonkey


I think he is talking on a similar topic at AltConf, Tuesday 9th: http://altconf.com/schedule/


Why sadly?


Blogspot has a a really weird layout. It's very buggy for me in Safari, and makes browsing old posts really difficult. It also seems to take a while for content to even appear on the screen.


Simon's blog has lots of interesting Metal posts. I've got them catalogued here:

http://www.h4labs.com/dev/ios/swift.html?q=flexmonkey&age=10...


Is the shader code available anywhere?

If every particle affects every other, wouldn't 2 million particles require 2,000,000^2 calculations per frame? 30*4 trillion interactions per sec seems a lot... or is there an efficient trick to it (in the shader)?


Wait if the iPhone is so "amazing" why is the best games for it angry birds?! Where is my World of Warcraft damn it!


Angry birds does a better job of satisfying humanity's desire for a game than world of warcraft.


You should try Vainglory.


Please add Metal & Swift to the title: mentioning these proprietary closed-source technologies might change peoples' expectation.


Do we really need trigger warnings for proprietary software? HN has never been a dogmatic bastion of free software.


It's not very relevant to smartphones as a whole, it's just Apple's take on it.


!UNPOPULAR OPINION TIME!

I was triggered. I do my best to stay away from Apple altogether. I believe in a world where companies are shamed into oblivion for not allowing their software to run across all platforms.

Apple doesn't work for the people, they work for the shareholders. Since I don't own any shares I'm dirt under their feet.

A lot of people on HN like to talk about power and privilege but when it comes to companies like Apple they make any excuse for their blatant platform discrimination.


You had PTSD flashbacks from reading an article about Apple? http://en.m.wikipedia.org/wiki/Trauma_trigger


Hey am I not allowed to be a bit sarcastic? So many tumblrinas use that word they've killed it's meaning.

Don't blame me, blame social justice warriors.


Please don’t use terms like SJW here. I can’t see how it’s relevant or adds anything to the discussion.


Poe's Law - I couldn't tell you were being sarcastic.


You're triggered by software while female Kurdish civilians spontaneously turned into soldiers face an enemy that rapes captured females.

Please for the love of God, go back to tumblr.


Wow that was way out of left field. Am I not allowed to not like Apple because there’s a war in the middle east? Maybe you're the one who needs to go back to tumblr and stop trying to push your political agenda on everyone you come into contact with.

From your comment history you seem to find any excuse you can to butt in with some lame comment about the middle east. I guess this is just an attempt to control the narrative and push your political agenda.

If anyone disagrees you paint them as some kind of supporter of rape.

This is something I expect from tumblr.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: