Optimizing Video Based Application for Intel Atom

Optimizing Video Based Application for Intel Atom


                   I have been developing an video based Android application on Intel Atom Architecture. I wish to know the bottlenecks that may hinder performance. If anyone can help me with optimization guidelines for this architecture like cache based optimizations, multi-threading, simd optimization for intel atom intrinsics or any other suggestion, I would be really grateful. Any links or files containing the optimizations for this architecture are most welcome.

Thanks in advance for any help with this matter.

3 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.


you can find the optimization manual here: http://www.intel.com/content/www/us/en/architecture-and-technology/64-ia... Details about the latest microarchitecture used on Atom, Silvermont are in chapter 15.

In summary, with older Atom devices (Clovertrail+), this is In-Order architecture with HyperThreading, and simd up to SSSE3. Classic gcc flags are -mtune=atom -mssse3 -mfpmath=sse

With Silvermont, it's Out-Of-Order without HyperThreading, simd up to SSE4.2, 64-bit support, AES-NI, RDRAND, VT-x. Classic gcc flags are -mtune=slm -maes -msse4.2


usually the first step to do performance optimization is to find and understand your bottleneck. A Performance profiler will help you with this. If you know your hot functions and hot loops you can start using the vector report features of your compiler to see if the code was vectorized if it was a loop. If you have hot loops that are not vectorized you should try to get them vectorized using compiler pragmas or by rewriting or reordering the instructions in the loop. 

A great performance profiler is Intel® VTune™ Amplifier. It allows you to not only find your hot functions and hot code lines it also allows you to see how well the code is running on the architecture. E.g. you will see things like Cache missings and multithreading of your application. The version of VTune which supports Android is included in Intel® System Studio (ISS). I would recommend to start exploring the beta for ISS 2015 from this webpage: https://software.intel.com/en-us/articles/download-intel-system-studio-2.... Please notice for the General Exploration analysis where you see the architectural issues you need a. x86 based Android device with root access. 
A basic getting started is here: https://software.intel.com/en-us/articles/using-intel-vtune-amplifier-on... 

Another good option to get more performance would be to try out the Intel® C++ Compiler. It's also part of Intel® System Studio. Sometimes just switching the compiler can give you a nice performance boost. On the Android compiler page: https://software.intel.com/en-us/c-compiler-android are also some nice videos about the performance benefit and how to get started. 

Let me know if you need more details :-). 




Leave a Comment

Please sign in to add a comment. Not a member? Join today