Under the Bridge

Introduction to NEON

So if you have any need for hardcore DSP-type stuff in your iPhone app, and you don’t already know all about the ARM® NEON™ engine, here is the article for you:

Introduction to NEON on iPhone

A sometimes overlooked addition to the iPhone platform that debuted with the iPhone 3GS is the presence of an SIMD engine called NEON. Just like AltiVec for PowerPC and MMX/SSE for x86, this allows multiple computations to be performed at once on ARM, giving an important speedup to some algorithms, on condition that the developer specifically codes for it.

Given that, among the iPhone OS devices, only the iPhone 3GS and the third-gen iPod Touch featured NEON up until recently, it typically wasn’t worth the effort to work on a NEON optimization, given that it would benefit only these devices, unless the application could require running on one of them (e.g. because its purpose is to processes videos recorded by the iPhone 3GS). However, with the arrival of the iPad it makes much more sense to develop NEON optimizations. In this post I’ll try to give you a primer on NEON…

Good stuff, good stuff. Now, for most of us, no doubt the Accelerate framework publicly announced for OS 4.0 is going to cover most everything we’re going to have any probable use for, but hey, if you’re really hardcore … this is what you need!

1