<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated on Wed, 25 Nov 2009 01:01:08 -0800 -->
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <atom:link href="http://software.intel.com/en-us/articles/software-development-toolsuite-atom-kb/type/performance-and-optimization/feed/" rel="self" type="application/rss+xml" />
    <title>Intel Software Network articles feed</title>
    <link>http://software.intel.com/en-us/articles/software-development-toolsuite-atom-kb/performance-and-optimization/</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>Overview - Intel(R) Software Development Tool Suites for Intel(R) Atom(TM) processor</title>
      <description><![CDATA[ <strong>Improved performance on Intel(R) Atom(TM) processor through Intel’s software development tools<br /></strong><br />
<p><br /><strong>Introduction<br /></strong><span class="sectionBodyText">Intel offers a wide range of software development tools designed for enabling the software developer to get great performance and end-user experience out of their application. At the same time it ensures with its wide range of development tools that performance bottlenecks can be identified quickly and coding errors and runtime issues can be pinpointed and fixed quickly. The purpose is to enable on-time delivery of mature and fast applications that showcase the user-friendliness, performance and feature richness of your applications.<br />Specifically for development projects targeting Moblin compliant applications and devices taking advantage of the Intel(R) Atom(TM) processor a set of software development tool suites is being offered. It bundles key development components addressing all phases of development from design, testing, bug fix cycle to performance tuning. <br />The following paragraphs will provide an insight into the Intel(R) Application Software Development Tool Suite for Intel(R) Atom(TM) processor and the Intel(R) Embedded Software Development Tool Suite for Intel(R) Atom(TM) processor. They will highlight the tools components included and their effective use. <br /></span><br /><strong>Tools Overview<br /></strong>The Intel(R) Atom(TM) processor is specifically targeted at low-power IA-32 based designs for a wide range of small form factor devices. These include netbooks, settop boxes, consumer electronics, in-vehicle infotainment and other designs focusing on internet content consumption, telephony and mobile location based services. The one thing most of these designs have in common is that their form factor makes it inconvenient to develop software natively on these platforms. The Intel(R) Software Development Tool Suites for Intel(R) Atom(TM) processor take this into account and offer solutions that address cross development requirements for designs running Moblin compliant Linux* OS and other Linux* based operating systems.<br />The Intel(R) Application Software Development Tool Suite consists of 4 development tools components.<br /><br /><strong>Intel(R) C++ Compiler<br /></strong>The Intel(R) C++ Compiler for Linux* has been optimized to harness key properties or the Intel(R) Atom(TM) processors architecture and get optimal performance out of it. The option switch –xSSE3_ATOM will cause the Intel(R) C++ Compiler to model the instruction pipeline of this in-order processor feeding instructions to it in an order that minimizes dependency stalls and resource stalls. Additionally it takes advantage of a complex set of heuristics to decide which type of assembly instructions to generate to speed up memory access, improve branch prediction and take account of the Intel(R) Atom(TM) processor’s floating point properties. Finally it also aggressively takes advantage of the SSE3 instruction set for vectorization and sped-up execution of thus parallelized loops. <br /><br /><strong>Intel(R) Integrated Performance Primitives <br /></strong>The Intel(R) IPP offer a rich set of library functions and codecs to be used to speed up development of highly optimized routines for the handling of multimedia formats and data of any kind. They have been low-level hand optimized to provide their known performance strength and ease of use for Intel(R) Atom(TM) processor based platforms. <br /><br /><strong>Intel(R) VTune(TM) Performance Analyzer<br /></strong>Finding the bottlenecks in your application, identifying where most time is spent during application and using event-based sampling to find hardware resource constraints that limit the performance potential of your application. This is the domain of the Intel(R) VTune(TM) Performance Analyzer. A VTune(TM) Performance Analyzer Sampling Collector (SEP) is included that allows for low overhead command line based performance data collection on the Intel(R) Atom(TM) processor based target device without any instrumentation of the code base to be analyzed. <br /><br /><strong>Intel(R) Application Debugger<br /></strong>A rich and user friendly Eclipse* RCP based graphical user interface combined with OS signal awareness and thread awareness enable the developer to use this TCP/IP cross-debug solution to more easily find coding issues that affect application runtime behavior and correct them.<strong> <br /><br />Intel(R) JTAG Debugger<br /></strong>In addition to these components the Intel(R) Embedded Software Development Tool Suite for Intel(R) Atom(TM) processor provides a JTAG debug solution that utilizing the same Eclipse* RCP based graphical user interface to give you access to the descriptor tables, page tables and all chipset registers with the detail that only it’s bitfield editor can provide. This debugger allows for high level language source level debugger of bootcode, OS kernel and device drivers.<br /><br /><strong>Benefits for your development projects<br /></strong>The benefits of using these comprehensive tool suites are many and impact every phase of the software development process. <br /><br />Improved performance in your critical applications and codecs due to the use of the Intel(R) C++ Compiler’s optimizations for the Intel(R) Atom(TM) processor or the Intel(R) IPP. <br /><br />Performance tuning and avoidance of inefficient code in your application with the help of the Intel(R) VTune(TM) Performancer Analyzer, leading to a smoother and more responsive end-user experience<br /><br />Faster coding issue detection and correction and thus improved maturity as well as faster time-to-market, faster development cycles for your project. <br /><br /><strong>How to start with application development for Moblin on Intel® Atom™ processor<br /></strong>The Intel(R) Application Software Development Tool Suite supports a wide variety of Intel(R) Atom(TM) processor based devices. This means that there is not one single use case or usage model that will fit the needs of every developer. Development for Intel(R) Atom(TM) processor based devices tends to have one aspect in common however. In most cases you will want to take advantage of the performance and the high screen resolution of your regular development environment and deploy your build to the real hardware for validation and analysis only. In short, most commonly the usage model will be one of cross development.<br />The Intel(R) Application Software Development Tool Suite for Intel(R) Atom(TM) processor addresses this in multiple ways.<br /><br />The Intel(R) C++ Compiler and the Intel(R) Integrated Performance Primitives will by default be installed on the development host system. To provide a protected build environment without host system library pollution it is however also supported to install these components into the Moblin* Image Creator 2 jailroot system or to install them into a Moblin* 2 developer image running inside a KVM* virtual machine or even on a real target. For the installation into Moblin* Image Creator 2 or into a KVM* image it is recommended to do this following the yum rpm repository based installation process outlined in the Moblin* Integration Guide Moblin_Integration.htm. <br /><br />Moblin* Image Creator 2 kickstart scripts can be found at <br /><a href="http://software.intel.com/en-us/articles/moblin-integration-software-development-tool-suite-atom/ ">http://software.intel.com/en-us/articles/moblin-integration-software-development-tool-suite-atom/ <br /></a>A template rpm repository definition file for the direct KVM* image installation of compiler and Intel(R) IPP can be found at <a href="http://software.intel.com/en-us/articles/installing-compiler-into-kvm-atom/">http://software.intel.com/en-us/articles/installing-compiler-into-kvm-atom/</a>. <br /><br />The Intel(R) Application Debugger will with the standard installation package be installed on your development host. Via TCP/IP you can connect to and debug a process either running on actual Intel(R) Atom(TM) processor based target hardware or a KVM* virtual machine or some other virtualization method that assures you that the application to be debugged runs in a software environment identical to the later application deployment. Please also have a look at the Getting Started Guide Getting_Started.html that is part of the tool suite distribution for further details on the Intel(R) Application Debugger usage.<br /><br />The Intel(R) VTune(TM) Performance Analyzer analyzes event based and time based sampling data on the development host. The data has been gathered on an Intel(R) Atom(TM) processor based target platform with low overhead giving you accurate sampling data. The analysis can be done within the standard KDE* or Gnome* based standard Linux* GUI you are used to for your development efforts.<br /><br /><strong>How to develop, and optimize applications for Windows* running on Intel® Atom™ processors</strong><br />When developing for a Microsoft Windows* XP or Windows* 7 based netbook whose platform is based on the Intel® Atom™ processor, the software development methodology is basically identical to what you are familiar with for writing an application that targets regular notebook PCs.<br /><br />The whole range of Intel’s software development products are at your disposal. <br />o <strong>Intel® Parallel Studio</strong> <br />A plug-in into Microsoft* Visual Studio* to analyze, and develop multithreaded applications for netbooks, and other Windows/Intel Atom processor based systems<br />o <strong>Intel® C++ Compiler for Windows* <br /></strong>A build solutionto generate highly optimized application code<br />o <strong>Intel® Integrated Performance Primitives Library for Windows*</strong> <br />A highly optimized multimedia library – already including multi-threading / autoscaling<br />o <strong>Intel® Threading Building Blocks <br /></strong>A template library to implement multithreading through C++ templates<br /><br />For more information on these tools please check on our website for more details on download, evaluation, usage and purchase: <a href="http://www.intel.com/software/products">http://www.intel.com/software/products</a>.<br /><br />Additional details on Intel® Atom™ specific development under Windows can be found at<br /><br />o Developing for Intel® Atom™ Processor running Linux* and Microsoft Windows* XP<br /><a href="http://software.intel.com/en-us/articles/development-atom-linux-and-windows/">http://software.intel.com/en-us/articles/development-atom-linux-and-windows/</a><br />o Optimized for the Intel® Atom™ Processor with Intel's Compiler<br /><a href="http://software.intel.com/en-us/articles/atom-optimized-compiler">http://software.intel.com/en-us/articles/atom-optimized-compiler<br /></a>o Using VTune™ Peformance Analyzer for Intel® Atom™ Processor on Windows* XP<br /><a href="http://software.intel.com/en-us/articles/using-vtune-atom-windows">http://software.intel.com/en-us/articles/using-vtune-atom-windows</a><br /><br /><strong>Usage Details &amp; Examples<br /></strong>The Intel Software network offers a wide range of further reading and whitepapers detailing the different use cases for the Intel(R) Software Development Tool Suites for Intel(R) Atom(TM) processor and it’s components. <br /><br />Application Debugging in Cross-Debug Environment<br /><a href="http://software.intel.com/en-us/articles/cross-application-debugging/">http://software.intel.com/en-us/articles/cross-application-debugging/</a> <br />Using the VTune(TM) Performance Analyzer Sampling Collector for Mobile Internet Devices<br /><a href="http://software.intel.com/en-us/articles/sampling-collector-mid/ ">http://software.intel.com/en-us/articles/sampling-collector-mid/ <br /></a>Optimized for the Intel(R) Atom(TM) Processor with Intel's Compiler<br /><a href="http://software.intel.com/en-us/articles/atom-optimized-compiler/">http://software.intel.com/en-us/articles/atom-optimized-compiler/</a> <br />Integrating Intel(R) Software Development Tool Suite Components with Moblin* Image Creator<br /><a href="http://software.intel.com/en-us/articles/moblin-integration-software-development-tool-suite-atom/">http://software.intel.com/en-us/articles/moblin-integration-software-development-tool-suite-atom/</a> <br />Installing the Intel(R) C++ Compiler and Intel(R) Integrated Performance Primitives into KVM* for Intel(R) Atom(TM) Processor targeted development<br /><a href="http://software.intel.com/en-us/articles/installing-compiler-into-kvm-atom/ ">http://software.intel.com/en-us/articles/installing-compiler-into-kvm-atom/ <br /></a>Compile moblin2 kernel sources with Intel Compiler <br /><a href="http://software.intel.com/en-us/articles/compiler-moblin2-kernel-sources-with-intel-compiler/ ">http://software.intel.com/en-us/articles/compiler-moblin2-kernel-sources-with-intel-compiler/ <br /></a>Device Driver Debugging on Intel(R) Atom(TM) processor based devices <a href="http://software.intel.com/sites/products/documentation/hpc/atom/application/device_driver_debugging.pdf">http://software.intel.com/sites/products/documentation/hpc/atom/application/device_driver_debugging.pdf<br /></a>Building Clutter* GUI libraries using the Intel(R) C++ Compiler<br /><a href="http://software.intel.com/en-us/articles/building-the-moblin-clutter-library-with-the-intel-compiler/">http://software.intel.com/en-us/articles/building-the-moblin-clutter-library-with-the-intel-compiler/</a><br />Building FFMEG using the Intel(R) C++ Compiler<br /><a href="http://software.intel.com/en-us/articles/how-to-build-ffmpeg-to-run-under-moblin-2/">http://software.intel.com/en-us/articles/how-to-build-ffmpeg-to-run-under-moblin-2/</a></p>
<p><br /><strong>References<br /></strong>Product Page: <a href="http://www.intel.com/software/products/atomtools">http://www.intel.com/software/products/atomtools</a><br />Documentation: <a href="http://software.intel.com/en-us/articles/intel-embedded-tool-suite-documentation/">http://software.intel.com/en-us/articles/intel-application-tool-suite-documentation/<br />http://software.intel.com/en-us/articles/intel-embedded-tool-suite-documentation/<br /></a>Knowledge Base: <a href="http://software.intel.com/en-us/articles/software-development-toolsuite-atom-kb/all/1/">http://software.intel.com/en-us/articles/software-development-toolsuite-atom-kb/all/1/<br /></a>Forum: <a href="http://software.intel.com/en-us/forums/software-development-toolsuite-atom/">http://software.intel.com/en-us/forums/software-development-toolsuite-atom/<br /></a><br /><strong>Conclusions<br /></strong>The Intel(R) Software Development Tool Suites for Intel(R) Atom(TM) processor provide a comprehensive development tools solution for Moblin compliant and Intel(R) Atom(TM) processor based platforms that is versatile and highly configurable in its usage model, tightly integrates with the Moblin SDK and brings the power of Intel’s software development tools solutions to the new class of devices and applications targeted by the Intel(R) Atom(TM) processor.</p> ]]></description>
      <link>http://software.intel.com/en-us/articles/overview-software-development-tool-suites-atom</link>
      <pubDate>Tue, 13 Oct 2009 11:49:15 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/overview-software-development-tool-suites-atom#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/overview-software-development-tool-suites-atom</guid>
      <category>Mobility</category>
      <category>Tools</category>
      <category>Intel® Atom™ Software Developer Community</category>
      <category>MID</category>
      <category>Intel® Software Development Tool Suites for Intel® Atom™ Processor Knowledge Base</category>
    </item>
    <item>
      <title>How to build ffmpeg to run under Moblin 2</title>
      <description><![CDATA[ <div class="Section1">
<p class="MsoNormal"><span class="sectionBodyText"><br />The application ‘ffmpeg’ consist of three executables and 5 libraries. All the sources can be downloaded using the following svn command:</span></p>
<p class="MsoNormal"><span class="sectionBodyText"></span></p>
<p class="MsoNormal"><span class="sectionBodyText"></span></p>
<p style="text-indent: -0.25in; margin-left: 0.5in" class="MsoNormal"><span style="font-size: 11pt; font-family: Wingdings">Ø<span style="FONT: 7pt 'Times New Roman'">      </span></span><span class="sectionBodyText">svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg </span></p>
<p class="MsoNormal"><span style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana"> </span><strong class="sectionHeading">Required patch</strong></p>
<p class="MsoNormal"><span class="sectionBodyText">One version which I tried ( download: svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg –r 17944)</span></p>
<p class="sectionBodyText">has a known problem with the sources. If you try to build the code, then you will get a compile time error:</p>
<p class="MsoNormal"><span class="sectionBodyText"> </span><span class="sectionBodyText">libswscale/swscale.c:488: error: ‘PIX_FMT_YUV420PLE’ undeclared</span></p>
<p class="MsoNormal"><span class="sectionBodyText"></span></p>
<p class="MsoNormal"><span class="sectionBodyText">The solution is solved by copying the contents of the libswscale directory from .</span><span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><span class="sectionBodyText">  </span> <a href="http://www.ffmpeg.org/releases/ffmpeg-0.5.tar.bz2" style="color: blue; text-decoration: underline; text-underline: single" title="http://www.ffmpeg.org/releases/ffmpeg-0.5.tar.bz2">http://www.ffmpeg.org/releases/ffmpeg-0.5.tar.bz2</a>    (see </span><span style="font-size: 8.5pt; font-family: Verdana" lang="EN"><a href="http://www.ffmpeg.org/download.html" style="color: blue; text-decoration: underline; text-underline: single">http://www.ffmpeg.org/download.html</a>)</span></p>
<p class="MsoNormal"><span class="sectionBodyText"></span></p>
<p class="MsoNormal"><span class="sectionBodyText">Please Note, <b><i>only</i></b> the libswscale directory should be copied <b><i>over the top</i></b> of the existing files.</span></p>
<h3> </h3>
<h3><span lang="FR" class="sectionHeading">Build Instructions</span></h3>
<p class="MsoNormal"><span class="sectionBodyText"></span></p>
<p class="MsoNormal"><span class="sectionBodyText">Following instructions will help you build ffmpeg under a Linux system assuming that the tar ball from the download is copied to &lt;install_directory&gt;:<br /></span><br /> Ø      cd  &lt;install_directory&gt;<br /><br /> Ø      cd tar xvfz  ffmpeg.tar.gz   #Extract the tar ball to your local directory. You will find a directory tree under the name ffmpeg installed. All the required sources are installed within this tree provided that you are not enabling any additional third party libraries.<br /><br /> Ø      cd ffmpeg</p>
<p class="sectionBodyText"> Ø      ./configure –help &lt;cr&gt; # to show all the options available to rebuild ffmpeg. For a reference build with <b>gcc</b> there is no need to provide any parameters to configure. However if you would like to enable any third party libraries like ‘libfaad’, ‘libx264’ etc. then you need to add --enable-libfaad --enable-libx264 etc. as parameters to configure. If this is required make sure that you have these sources available on your development environment and that the third party libraries are rebuilt with the selected compiler / compiler options.</p>
<p class="sectionBodyText"> Ø      ./configure &lt;parameters as below&gt;</p>
<p class="MsoNormal"><span class="sectionBodyText"> </span>Ø      make &lt;cr&gt; #recommended sequence is ‘make clean’ followed by ‘make’. The rebuild will take several minutes (depending on your development environment). Two versions of each executable are produced: ex. ‘ffmpeg’ and ‘ffmpeg_g’. The ‘*_g’ contains the executable with debug information while the ‘*’ is the stripped version. In addition ‘ffplay, ffplay_g, ffserver and ffserver_g’ are produced as executables and libavutil, libavcodec, libavformat, libavdevice and libswscale are rebuilt.</p>
<p class="sectionHeadingText"> <b><span style="text-decoration: underline;">Icc build</span></b>:</p>
<p class="MsoNormal"><span class="sectionBodyText">Depending on what version of icc you are using different configure parameters may be necessary.</span></p>
<p class="MsoNormal"><span class="sectionBodyText"> </span><span class="sectionBodyText">Using icc v10.1.xxx:</span></p>
<p class="MsoNormal"><span class="sectionBodyText"> </span>Ø      ./configure cc=icc --extra-cflags=”-xL –O3” --extra-libs=-lsvml &lt;cr&gt; # Without linking in the extra library (libsvml.so) you get several references unresolved.</p>
<p class="MsoNormal"><span class="sectionBodyText"> </span><span class="sectionBodyText">Using icc v11.0.xxx:</span></p>
<p class="MsoNormal"><span class="sectionBodyText"> </span>Ø      ./configure cc=icc –extra-cflags=”-xSSE3_ATOM –O3” –extra-libs=-lsvml &lt;cr&gt; #  The option –xSSE3_ATOM do require that you run the code on a processor which does support the ‘movbe’ instruction. If you would like to test the code on a processor not supporting the ‘movbe’ instruction you can add the option ‘-minstruction=nomovbe’ in the extra-cflag part of the command line above.<br />Ø      Make sure that the LD (linker) options do not contain ‘–march=generic’ in the config.mak file. This option causes an error from the compiler.<br /><span class="sectionBodyText"><br />Using icc v11.1.xxx:<br /></span><br />Ø      To avoid a run time erratum following source change is needed:   Open file ./libavcodec/x86/dsputil_mmx.c and on line #2944 insert // before || __ICC &gt; 1100. The line is highlighted below.</p>
<p style="MARGIN-LEFT: 0.25in" class="MsoNormal"><span style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana"><v:shapetype coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f" id="_x0000_t75"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></v:path><o:lock v:ext="edit" aspectratio="t"></o:lock></v:shapetype><v:shape type="#_x0000_t75" style="width: 6in; height: 113.25pt;" id="_x0000_s1025"><v:imagedata src="new_page_21_files/image001.png"><img width="576" src="http://software.intel.com/file/22666" height="151" /></v:imagedata></v:shape></span><br /><br />Ø      After the change it will look like: #if ARCH_X86_64 || ! ( __ICC) // || __ICC &gt; 1100</p>
<p style="MARGIN-LEFT: 0.25in" class="MsoNormal"><span class="sectionBodyText"></span></p>
<p style="text-indent: -0.25in; margin-left: 0.5in" class="sectionBodyText">Ø      ./configure cc=icc –extra-cflags=”-xSSE3_ATOM –O3” &lt;cr&gt; # This simple configure does work but you get better performance if you also add the ‘--extra-lib=-lsvml’. Additional compiler switches can be used to improve the performance – for example ‘-no-prec-div’, ‘-vec-‘. As the no-prec-div has an effect on the fp calculations please refer to the compiler documentation before it is used. In addition the ‘-xSSE3_ATOM’ switch are no longer requiring a processor with ‘movbe’ support.</p>
<p class="sectionHeadingText"> Cross compilation.</p>
<p class="MsoNormal"><span class="sectionBodyText">It is standard practice to build the library and executables on a development machine and then copy the resultant files to the MOBLIN target.  You can use the option --enable–cross-compile in this case.</span></p>
<p class="MsoNormal"><span class="sectionBodyText"></span></p>
<p style="MARGIN-LEFT: 0.25in" class="MsoNormal"><span class="sectionBodyText"></span></p>
<p class="MsoNormal"><span class="sectionBodyText">Once you have completed the configure stage you can just run the ‘make clean’ followed by ‘make’. You could expect additional warnings produced.</span></p>
<p class="MsoNormal"><span class="sectionHeading"></span></p>
<p class="MsoNormal"><b><span style="text-decoration: underline;"><span class="sectionHeading">Building ffmpeg with third party libraries:</span></span></b></p>
<p class="MsoNormal"><b><span style="text-decoration: underline;"><span class="sectionHeading"></span></span></b></p>
<p class="MsoNormal"><span class="sectionBodyText">The application can support 21 different external 3<sup>rd</sup> party libraries. Each of those are selected in the configure process by adding the option ‘--enable-&lt;library-name&gt;’. </span></p>
<p class="MsoNormal"><span class="sectionBodyText">Below is an example of using some of the different external libraries available:</span></p>
<p class="MsoNormal"><span class="sectionBodyText"> </span>Ø      ./configure &lt;other options as above&gt; --enable-libfaac --enable-libfaad --enable-libmp3lame --enable-libtheora --enable-libx264 --enable-libxvid<span class="sectionBodyText"> </span></p>
<p class="MsoNormal"><span class="sectionBodyText">The invocation above assumes that you will be using 6 external 3<sup>rd</sup> party libraries:</span></p>
<p class="MsoNormal"><span class="sectionBodyText"> </span><span class="sectionBodyText">- libfaac       # for example you can download ‘faac-1.28.tar.gz’ or later version from the web.</span></p>
<p class="MsoNormal"><span class="sectionBodyText"> </span><span class="sectionBodyText">- libfaad       # for example you can download ‘faad2-2.7.tar.gz’ or later version from the web.</span></p>
<p class="MsoNormal"><span class="sectionBodyText"> </span><span class="sectionBodyText">- libmp3lame # for example you can download ‘lame-398-2.tar.gz’ or later version from the web.</span></p>
<p class="MsoNormal"><span class="sectionBodyText"> </span><span class="sectionBodyText">- libtheora    # for example you can download ‘libtheora-1.0.tar.tar’ or later version from the web. Please note that you can not use ICC v 10.1 to rebuild this library due to a compiler issue. This has been fixed with 11.1 version of the compiler.</span></p>
<p class="MsoNormal"><span class="sectionBodyText"> </span><span class="sectionBodyText">- libx264      # for example you can download ‘x264-snapshot-20090117-2245.tar.bz2’ or later version from the web.</span></p>
<p class="MsoNormal"><span class="sectionBodyText"> </span><span class="sectionBodyText">- libxvid      # for example you can download ‘xvidcore-1.2.1.tar.gz’ or later version from the web.</span></p>
<p class="MsoNormal"><span class="sectionBodyText"> </span></p>
</div> ]]></description>
      <link>http://software.intel.com/en-us/articles/how-to-build-ffmpeg-to-run-under-moblin-2</link>
      <pubDate>Thu, 01 Oct 2009 02:39:07 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/how-to-build-ffmpeg-to-run-under-moblin-2#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/how-to-build-ffmpeg-to-run-under-moblin-2</guid>
      <category>Mobility</category>
      <category>Open Source</category>
      <category>Tools</category>
      <category>Intel® Atom™ Software Developer Community</category>
      <category>MID</category>
      <category>Intel® Software Development Tool Suites for Intel® Atom™ Processor Knowledge Base</category>
    </item>
    <item>
      <title>Building the Moblin Clutter Library with the Intel Compiler</title>
      <description><![CDATA[ <p><b>Building the Moblin Clutter Library with the Intel Compiler</b></p>
<p><b>Introduction</b></p>
<p><b>Build environment</b></p>
<p>The build instructions below are based on the assumption that the build environment is a Fedora10 installation. </p>
<p>A copy of the installation disks can be found here. <a href="http://fedoraproject.org/get-fedora">http://fedoraproject.org/get-fedora</a></p>
<p>It is important that the GCC tools are installed when the Fedora installation is installed.</p>
<p><b>Cross-development</b></p>
<p>The clutter libraries  and test environment  are first built on a Fedora installation, and then the resultant executables and libraries can then be copied over to a MOBLIN2 platform.</p>
<p><b>Virtualisation</b></p>
<p>The steps below can be undertaken on a virtual machine, the only restriction being that not all virtual machines support video acceleration  </p>
<p><b>The tests</b></p>
<p>There are a number of tests that can be used to benchmark the clutter library. The benchmark performance is measured by how many Frames Per Second (FPS) are achieved.<b><br clear="all" /></b></p>
<p><b>Building the Clutter Libraries</b></p>
<p><b>Downloading the sources</b></p>
<p>The sources for the clutter library can be obtained by using the following command.</p>
<p>In a development directory of your choosing download the sources</p>
<p>   git clone git://git.clutter-project.org/clutter</p>
<p>   git clone git://git.clutter-project.org/clutter-box2d</p>
<p>Progress for each download should be reported similar the following:</p>
<p> </p>
<p>$ git clone git://git.clutter-project.org/clutter<br /><br />Initialized empty Git repository in /home/intel/dv/clutter/clutter/.git/<br />remote: Counting objects: 25225, done.<br />remote: Compressing objects: 100% (10261/10261), done.<br />remote: Total 25225 (delta 20575), reused 18319 (delta 14944)<br />Receiving objects: 100% (25225/25225), 6.99 MiB | 104 KiB/s, done.<br />Resolving deltas: 100% (20575/20575), done.</p>
<p><b>Building the Sources</b></p>
<p>Directory structure should look similar to this:</p>
<p>             &lt;dev-dir&gt;/clutter/<br />            &lt;dev-dir&gt;/clutter-box2d</p>
<p> </p>
<p>In each of these sub directories build the libraries as follows:</p>
<p><b>Choosing which compiler </b></p>
<p><b>Building with GCC</b></p>
<p>For our installation, we'll use the environment variable  $PREFIX custom directory so as not to override any existing installation</p>
<p>     export PREFIX=/opt/custom/gcc<br />    ./autogen.sh --prefix=$PREFIX</p>
<p><b>Building with ICC</b></p>
<p>To build the library with the Intel compiler use the following commands</p>
<p>    export CC=icc<br />    export CXX=icc</p>
<p>   export PREFIX=/opt/custom/icc<br />  ./autogen.sh --prefix=$PREFIX</p>
<p><b>Continuing the build</b></p>
<p>When autogen has completed you should get a message similar to the display below </p>
<p>  <br />                                  Clutter    0.9.7<br />                         ====================<br />                                  prefix:   /opt/custom/gcc<br />                                Flavour:   glx/gl<br />                                 XInput:   no<br />                          GL headers:   GL/gl.h<br />                    Image backend:   gdk-pixbuf<br />                       Target library:   libclutter-glx-0.9.la<br />               Clutter debug level:   yes<br />                 COGL debug level:   minimum<br />                      Compiler flags:   -Wall -Wshadow -Wcast-align -Wno-uninitialized -Wno-strict-aliasing -Wempty-body -Wformat-security -Winit-self<br />        Build API documentation:   no<br />  Build manual documentation:   no<br />         Build introspection data:   auto</p>
<p>  </p>
<p>Now build the source by calling make</p>
<p>The progress of the make will be reported, the last few lines looking similar to this:</p>
<p>   Making all in tools<br />     CC    disable-npots.o<br />     LINK  libdisable-npots-static.la<br />     LINK  libdisable-npots.la <br />   Making all in po</p>
<p><b>Installing the new library</b></p>
<p>To install the new library call:</p>
<p>make install</p>
<p>Note, depending on the permissions of the installation directory (set with the $PREFIX variable in the previous steps) you may need to do this as root.</p>
<p> </p>
<p><b>Building the tests</b></p>
<p>The test directory has a number of tests. The README describes the tests as follows </p>
<p><i>"The conform/ tests should be non-interactive unit-tests that verify a single feature is behaving as documented. See conform/ADDING_NEW_TESTS for more details.</i></p>
<p><i> </i><i>The micro-bench/ tests should be focused performance test, ideally testing a single metric. Please never forget that these tests are synthetic and if you are using them then you understand what metric is being tested. They probably don't reflect any real world application loads and the intention is that you use these tests once you have already determined the crux of your problem and need focused feedback that your changes are indeed improving matters. There is no exit status requirements for these tests, but they should give clear feedback as to their performance. If the frame rate is the feedback metric, then the test should forcibly enable FPS debugging.</i></p>
<p><i> </i><i>The interactive/ tests are any tests who's  status can not be determined without a user looking at some visual output, or providing some manual input etc. This covers most of the original Clutter tests. Ideally some of these tests will be migrated into the conformance/ directory so they can be used in automated nightly tests."</i></p>
<p>To build the tests, from the top level of the test directory do: </p>
<p>    make</p>
<p>The build will report:</p>
<p>    Making all in data <br />    Making all in conform<br />    Making all in interactive<br />    Making all in micro-bench<br />    Making all in tools</p>
<p><b>Running the tests</b></p>
<p>Having built the tests, each test can be run from the command line.</p>
<p><b>Automatic running of  tests.</b></p>
<p>Many of the tests do not run to completion, but keep running,  The script in the appendix below gives an example of how the tests can be automatically called and killed after a predefined time.</p>
<b><br clear="all" /></b>
<p><b>Appendix 1 -  Script to drive test cases</b></p>
<p>#!/usr/bin/perl<br /># list of tests <b>TODO: EDIT THESE TO YOUR REQUIREMENTS<br /></b>@Tests=("test-actors", "test-behave", "test-clip","test-cogl-offscreen","test-cogl-primitives","test-cogl-tex-convert","test-cogl-tex-foreign","test-cogl-tex-getset","test-cogl-tex-polygontest","test-cogl-tex-tile","test-depth","test-layout","test-multistage","test-pixmap","test-project","test-random-text","test-rotate","test-scale","test-script","test-sharder","test-text","test-texture-quality","test-textures","test-threads","test-unproject","test-viewport");<br /><br />#@Tests=("test-actors", "test-behave");<br />@Results=();<br /><br /># for each test run it for 10 seconds<br />my $Timeout = 10;<br />## chdir interactive;<br />my $bStarted = 0;<br /><br />foreach my $Test (@Tests)<br />{<br />    # print "executing $Test\n ";<br />    eval {<br />        local $SIG{ALRM} = sub { die "alarm\n" }; # NB: \n required<br />        alarm $Timeout;<br />        # system("./$Test --clutter-show-fps &gt; res.$Test.txt");<br /><br />        # mark end of prev test<br />        push @Results, "END" if $bStarted;<br />        push @Results, "TEST:$Test\n-----------------------\n";<br />        $bStarted = 1;<br />        open (RUN,"./$Test --clutter-show-fps &amp;|");<br />        while(&lt;RUN&gt;)<br />        {<br />            push @Results, $_;<br />        }<br />        alarm 0;<br />    };<br />    if ($@) <br />    {<br />        die unless $@ eq "alarm\n"; # propagate unexpected errors<br />        # timed out<br />        system("killall -9 lt-test-interactive");<br />     }<br />}<br /># mark the end of the last test<br />push @Results, "END" if $bStarted;<br /><br /># process the results<br />my $NumTests = 0;<br />my $Total = 0;<br />my $Max = 0;<br />my $Min = 9999;<br />my $TestName="";<br /><br />print "\nName Min Max NumTests Average\n";<br />foreach my $Line (@Results)<br />{<br />    if($Line=~/^TEST:(.*)/)<br />    {<br />        # print "IN TEST $Line";<br />        $TestName= $1;<br />        chomp $TestName;<br />        $NumTests = 0;<br />        $Total = 0;<br />        $Max = 0;<br />        $Min = 9999;<br />    }<br /><br />    if($Line=~/END/)<br />    {<br />        # print "IN END :$Line";<br />        $Average = 0;<br />        $Average = $Total/$NumTests if $NumTests &gt; 0;<br />        print "$TestName $Min $Max $NumTests $Average\n";<br />    }<br /><br />    if($Line=~/\*\*\* FPS: (.*) \*\*\*/)<br />    {<br />        # print "IN FPS: $Line";<br />        $NumTests++;<br />        $Total = $Total + $1;<br />        $Max = $1 if $1 &gt; $Max;<br />        $Min = $1 if $1 &lt; $Min;<br />    }<br />}<br /><br />print "exiting ..\n";<br /> </p>
<p> </p>
<b><br clear="all" /></b>
<p><b> Appendix 2 - Essential notes on installing Fedora  </b></p>
<p>When installing Fedora you must install the Software Development tools.</p>
<p> </p>
<p> </p> ]]></description>
      <link>http://software.intel.com/en-us/articles/building-the-moblin-clutter-library-with-the-intel-compiler</link>
      <pubDate>Sat, 12 Sep 2009 03:56:58 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/building-the-moblin-clutter-library-with-the-intel-compiler#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/building-the-moblin-clutter-library-with-the-intel-compiler</guid>
      <category>Mobility</category>
      <category>Tools</category>
      <category>MID</category>
      <category>Intel® Compilers</category>
      <category>Intel® Software Development Tool Suites for Intel® Atom™ Processor Knowledge Base</category>
    </item>
  </channel></rss>