Sei sulla pagina 1di 12

WHITEPAPER IntelSoftwareSolutionsGroup PetterLarsson

April2011

Energy-Efficient Software Guidelines


Thepurposeofthisdocumentistoprovideenergyefficientsoftwareguidelinesextendingtheitems describedintheEnergyEfficientSoftwareChecklistdocument.TheguidelinesareOSandarchitecture agnosticexceptwhereotherwisenoted. Thefollowingguidelinesfocusonhowtooptimizeapplicationsforenergyefficiency.Notethatthegoal isnottoprovidesystemleveloptimizationsuggestions.Thatsaid,itisbeneficialtotheapplication developertolookatsystemwidepowerefficiency,asrunningbackgroundapplicationsmightaffector interactwiththetargetapplication.Forinstance,abackgroundviruscheckermightslowdownfile accessorimpactgenericperformancewhenactive.Toeliminateorreducebackgroundimpact,tryto disableorminimizepotentialsystemculpritswhenmeasuringapplicationenergyefficiency. Beforeperforminganypoweroptimizations,itisalsosuggestedthatyoufirstcreateabaseline measurementusingexistingcodebasesothatyouhaveagoodreferenceofcomparisonmodifyingyour applicationforenergyefficiency. Foramoredetailedoverviewofthetopicsdiscussedhere,pleaserefertotheIntelSoftwareNetwork EnergyEfficientSoftwareportal,http://softwarecommunity.intel.com/articles/eng/1621.htm,andthe paperCreatingEnergyEfficientSoftware,at http://softwarecommunity.intel.com/articles/eng/1458.htm.

Contents
1ComputationalEfficiency...........................................................................................................................3 1.1Loops...................................................................................................................................................3 1.2PerformanceLibraries/Extensions......................................................................................................3 1.3Algorithms...........................................................................................................................................4 1.4CompilerOptimization........................................................................................................................4 1.5Drivers.................................................................................................................................................4 1.6Programminglanguage.......................................................................................................................4 2MaximizeIdle.............................................................................................................................................4 2.1Multithreading....................................................................................................................................4 2.2ReduceUseofHighResolutionPeriodicTimers ................................................................................5 . 3DataEfficiency ...........................................................................................................................................5 . 4Context/PowerAwareBehavior................................................................................................................6 4.1HandlingSleepTransitionsSeamlessly...............................................................................................6 4.2Respond/AdapttoSystemPowerEvents...........................................................................................7 4.3ScaleBehaviorBasedonMachinePowerState..................................................................................7 4.4ContextAwarenessToolkits................................................................................................................7 4.5UnusedPeripherals.............................................................................................................................8 5ToolsandTestingforEnergyEfficiency.....................................................................................................8 5.1Tools....................................................................................................................................................8 5.1.1IntelPowerChecker(MicrosoftWindowsXP/WindowsVista*/Windows7) .............................8 . 5.1.2Perfmon(MicrosoftWindowsXP/WindowsVista/Windows7)..................................................8 5.1.3PwrTest/WindowsDriverKit(MicrosoftWindowsXP/WindowsVista/Windows7)..................9 5.1.4WindowsEventViewer/EventLog(MicrosoftWindowsXP/WindowsVista/Windows7).........9 5.1.5WindowsETW(MicrosoftWindowsXP/WindowsVista/Windows7).........................................9 5.1.6PowerInformer(MicrosoftWindowsXP/WindowsVista/Windows7).......................................9 5.1.7IntelApplicationEnergyToolkit(MicrosoftWindowsXP/WindowsVista/Windows7,Linux, AppleMacOS*) ....................................................................................................................................9 . 5.1.8PowerTOP(Linux).........................................................................................................................9

White Paper Energy-Efficient Software Guidelines; Page 2 of 12

5.1.9BatteryLifeToolkit(BLTK)(Linux)..............................................................................................10 5.1.10Linuxcommandlinetools........................................................................................................10

1 ComputationalEfficiency
1.1 Loops Minimizetheuseoftightloops.Toreducetheoverheadassociatedwithsmallloops,the performance/powerrelationshipcanbeimprovedbyloopunrolling.Toachievethisgoal,the instructionsthatarecalledinmultipleiterationsofthelooparecombinedintoasingleiteration.This approachwillspeeduptheprogramiftheoverheadinstructionsoftheloopimpairperformance significantly.Sideeffectsmayincludeincreasedregisterusageandexpandedcodesize. Greaterpowersavingscanoftenbeachievedwiththe2ndgenerationIntelCoreprocessorfamilyby exploitingIntelsmostrecentLoopStreamDetection(LSD)technologythanbyperformingloopunrolling. Refertosections2.1.2.3and3.4.2.4intheOptimizationReferenceManual, http://www.intel.com/design/processor/manuals/248966.pdffordetails.Forbestresults,investigate bothapproachesandcomparetheenergyefficiencyachievedwitheach. Itisadvisabletoconvertpollingloopstobeingeventdriven.Ifpollingloopsarenecessary,useefficient pollingloops(i.e.,thelargestpossiblepollinginterval). Trytoeliminatebusywait(spinning)loops,althoughinsomecasessuchaswhenlockingor synchronizingusingsharedmemory,thebestapproachmightstillbetouseaspinwaitloop.For efficientspinwaitloops,itisrecommendedtousethepauseinstruction. 1.2 Performance Libraries/Extensions UsinginstructionsetextensionssuchasSSEinstructions,IntelAdvancedVectorExtensions(IntelAVX) ormorerecentextensions,performanceandenergyefficiencycanoftenbeimprovedforcomputation intensiveapplications.Theinstructionsetextensionsareoftenbasedontheconceptofprocessing multipledatausingoneinstruction(SIMD).ForadditionaldetailsaboutIntelAVX,referto: http://software.intel.com/enus/avx/?wapkw=(avx). Applicationenergyefficiencycanalsobeimprovedbyutilizinglibrariesthatareoptimizedfor performance.Intelprovideslibrarypackagesaddressingthisspecifictopic,includingIntelIntegrated PerformancePrimitivesandtheIntelMathKernelLibrary.Thiscollectionoflibrariescontainsoptimized implementationsofcommonalgorithmsinareassuchasaudio,video,imaging,cryptography,speech recognition,andsignalprocessing.Foradditionaldetailsreferto: http://www3.intel.com/cd/software/products/asmona/eng/perflib/219780.htm. Mediaapplicationscanbenefitfromgreaterpowerefficiencybytakingadvantageofvideoencodeand decodehardwareaccelerationthatisavailableonthe2ndgenerationIntelCoreprocessorfamilywith IntelHDGraphics,forexample.TheIntelMediaSoftwareDevelopmentKit(IntelMediaSDK) providesdeveloperswithastandardapplicationprogramminginterface(API)tocreatehigh performancevideosolutionsthatrunonavarietyofcurrentandfutureIntelprocessors.Learnmore abouttheIntelMediaSDKathttp://www.intel.com/software/mediasdk.

White Paper Energy-Efficient Software Guidelines; Page 3 of 12

ToolssuchasIntelVTunePerformanceAnalyzercanprovidemoreindepthperformanceanalysisof yourapplication.UsingtheVTuneenvironment,developerscandrilldownonspecificperformance bottlenecksinanapplication.Seehttp://www3.intel.com/cd/software/products/asmo na/eng/vtune/239144.htmformoreinformation. ThetoolsandpackageslistedaboveareavailableforbothWindows*andLinux.* 1.3 Algorithms Generally,itisadvisedtoimproveenergyefficiencybyusinghighperformancealgorithmsanddata structuresthatcompletetasksfaster,allowingtheprocessortoidle.Ifrequirementsallow,analternate approachistoinvestigatethesuitabilityofalesscomplex(andmoreenergyefficient)algorithm.The solutioncanalsobeaugmentedwiththeabilitytohotswitchthealgorithmdependingonthemachine powercontext(refertotheContext/PowerAwaresectionofthisdocument).Forinstance,an applicationmightselectalowerqualityvideoencoder/decoderwhenrunningonbatteries. Beawarethatheavilyrecursivealgorithmscanbeenergyinefficient,astheyoftenaddoverheadby usingorexercisingmorestackthannonrecursivealgorithms. 1.4 Compiler Optimization Energyefficiencycanoftenbeimprovedbyoptimizingapplicationsforspeedusingavailablecompiler optionssuchasO2orO3onIntelcompilersandGNUcompilers. Extendedoptimizationscanbeachievedbyusingapplicationprofilingtoprovideinsightssuchasthe mostcommonexecutionpaths.Thisundertakinggenerallyentailsinstrumentingtheapplication, executingaprofilerun,andfeedingbackprofilinginformationtothecompiler.TheIntelcompilers provideoptionssuchasprofgenandprofuseforprofiledcompilation. FormoreinformationontheIntelcompilers,visithttp://www3.intel.com/cd/software/products/asmo na/eng/compilers/284132.htm. 1.5 Drivers Identifythekernel,drivers,andlibrariesusedbytheapplicationanddeterminewhetherthereare alternativeimplementationsofcomponentsthataremorepowerfriendly.Forinstance,amorerecent Linuxkernelmayfeatureschedulingoptimizationsthatcanmaketheapplicationrunmoreefficiently. AnotherpossibilitycouldbetoupdatetoamorerecentandenergyefficientBluetooth*devicedriver. 1.6 Programming language Ifpossible,considerusingaprogramminglanguageimplementationandlibrariesthatareidlepower friendly.Somehighlevelruntimelanguagesmaycausemorefrequentwakeupscomparedtolower levelsystemprogramminglanguagessuchasC.

2 MaximizeIdle
2.1 Multithreading Executioncanbeacceleratedbytakingadvantageofmultiplethreadsandcores,leadingtoincreased idletimethatinturnleadstoenergysavings.

White Paper Energy-Efficient Software Guidelines; Page 4 of 12

Trytobalanceyourthreads,asimbalancedthreadsmayleadtoincreasedenergyconsumption.The threadedworkloadcanbedecomposedusingfunctionaldecompositionordatadecomposition.By threadingtheworkloadusingdatadecomposition,multithreadedperformanceislesslikelytobe affectedbyfuturefunctionalchanges.ItispreferredtolettheOShandleschedulingofthreadsas opposedtoaffinitizingthreadstoacertaincore.Foradditionaldetailsonmultithreadingandthread balancing,pleaserefertothefollowingarticle: http://softwarecommunity.intel.com/articles/eng/2702.htm. Toanalyzehowyourapplicationperformswithregardtothreading,wesuggestusingtheIntel ThreadingAnalysisTools:http://www3.intel.com/cd/software/products/asmo na/eng/threading/219785.htm. Ifyouaredesigningthreadedcomponents,alsoconsiderIntelThreadingBuildingBlocks(availablevia theabovelink). Finally,theIntelSoftwareNetworkConcurrencyImprovementCenterisdesignedtoprovideparallel programmingtoolsandresources,startingwiththebasics,writtenbyourCommunityexperts,tohelp youimprovetheconcurrencylevelofyoursoftware:http://software.intel.com/en us/articles/concurrencyimprovementcenter/. 2.2 Reduce Use of High-Resolution Periodic Timers Agoodwayofreducingapplicationenergyfootprintistoletitidleasoftenaspossible.Makesurethe applicationisoptimizedtousethelongesttimerratepossiblewhilestillfulfillingtherequirements. Usingtimerintervalsshorterthan15mshassmallbenefitformostapplications.Alwaysmakesureto disableperiodictimersincasetheyarenotinuse,lettingtheOSadjusttheminimumtimerresolution accordingly. IntelPowerCheckerprovidesaquickmethodofassessingplatformtimertickbehaviorduringboth applicationactiveandidlemodes(MicrosoftWindows)onmobileplatformsusingtheIntelCore processorfamilyorIntelAtomprocessor:http://www.intel.com/partner/sat/pe. FordriverorkernelapplicationsrunningunderLinux,thereareadditionaltimeroptimizationtechniques available.Usingroundjiffies,http://www.lesswatts.org/projects/tickless/round_jiffies.php,non criticaltimerscanbegrouped,decreasingthenumberofwakeups.Usingdeferrabletimers, http://www.lesswatts.org/projects/tickless/deferrable.php,noncriticaltimerscanbequeueduntil processorwakesupfromidlebynondeferrabletimer.

3 DataEfficiency
Efficienthandlingofapplicationdatacanoftenreducetheenergyrequiredtoperformagiventask. Oneapproachusedtoreducedatamovementistobufferdatatransferredtoandfromtypicalstorage devicessuchasharddisksandopticaldisks.Byprefetchingand/orbufferingdata,therebyavoiding frequentreadsandwrites,thedeviceisleftmoretimetoidle.Examineyourapplicationtodetermine whetherdatarequestscanbebufferedandbatchedintooneoperation.Foradditionaldetails,referto http://softwarecommunity.intel.com/articles/eng/1462.htm#dataefficiency. Anothermethodtominimizedatamovementistooptimizehowdataisstoredinmemory.Itis preferabletostoredataascloseaspossibletotheprocessingentity.Forinstance,dataefficiencywill

White Paper Energy-Efficient Software Guidelines; Page 5 of 12

improveifanalgorithmisoptimizedsothatitusesdataincacheasoftenaspossibleinsteadof accessingdatafromRAM. Itisalsobeneficialtostudyhowresources(suchasmemory)aresharedbetweenprocessorcores.One coreusingasharedresourcemaypreventothercoresfromdescendingintoalowersleepstate(Cstate). Toresolvethisissue,trytosynchronizethreadsondifferentcorestoworksimultaneouslyandidle simultaneously. Toanalyzehowmemoryisexercisedinyourapplication,itisadvisabletousememoryprofilingtools suchastheVTuneanalyzerandIntelPerformanceTuningUtility (http://softwarecommunity.intel.com/articles/eng/1437.htm).

4 Context/PowerAwareBehavior
4.1 Handling Sleep Transitions Seamlessly Applicationscanimprovepowerawarenessanduserexperiencebyreacting/adaptingtoplatform sleep/hibernate/wakeuppowertransitions.Reactingtoplatformpowertransitionsusuallymeansthat applicationsshouldhandlethetransitionswithoutrequiringarestart,lossofdata,andchangeinstate. Inaddition,foragooduserexperience,applicationsshouldhandlethepowertransitionstransparently withnouserinteraction. Followingaresometasksthatapplicationsshouldconsiderwithregardtosleeptransitions: Savingstate/datapriortothesleeptransitionandrestoringstate/dataafterthewakeup transition ClosingallopensystemresourcehandlessuchasfilesandI/Odevicespriortothesleep transition Disconnectingallcommunicationlinkspriortothesleeptransitionandreestablishingall communicationlinksafterthewakeuptransition Synchronizingallremoteactivity(suchaswritingbacktoremotefilesortoremotedatabases) afterthewakeuptransition Stoppinganyongoinguseractivity(suchasstreamingvideo)

OnWindowsoperatingsystems,theSetThreadExecutionStateAPIisusedtopreventthesystemfrom transitioningtosleepmode.TheapplicationshouldusetheAPIwithcareandonlypreventsystemidle timeoutswhennecessary.Remembertoresetexecutionstatewhenthetask(suchaspresentation mode)iscomplete. Foradditionaldetailsonthistopic,refertothearticle,ApplicationPowerManagementforMobility, http://softwarecommunity.intel.com/articles/eng/2402.htm,includingsomeexamplesonhowto handlesystemtransitionsontheWindowsOS(usingWM_POWERBROADCAST, setThreadExecutionState,etc.)andtothearticle,GracefulApplicationSuspension, http://softwarecommunity.intel.com/articles/eng/3437.htm.

White Paper Energy-Efficient Software Guidelines; Page 6 of 12

4.2 Respond/Adapt to System Power Events Forsomeapplications,respondingtotransitionsbetweenbatteryandACoperation,includingdisplaying batterystatus,canimprovetheuserexperienceanddependingonthemeasurestaken,itmayalso improveenergyefficiency. Toavoidduplicateworkinthecaseoftransitiontostandby,itisadvisabletohandlelowbatteryevents bysavingwork,state,orcheckpoint.ApplicationsalsobenefitbyadaptingtotheuserselectedOS powerpolicy(scheme). 4.3 Scale Behavior Based on Machine Power State Improvedapplicationenergyefficiencycanbeachievedbyscalingtheapplicationbehaviorinresponse toachangeinmachinepowerstate.Followingaresomeexamplesofscaledbehavior: Reducedresourceusagewhenonbatterypower(suchasdisablingautomaticbackground updates/downloads) Ifpossible,switchtoalowpoweralgorithmwhenonbatterypowerorrunninglowonbattery ReducingthequalityofvideoandaudioplaybackinaDVDapplicationtoextendplaytimewhile travelling Turningoffautomaticspellcheckandgrammarwhenonbatterypower

Foradditionaldetailsonthistopic,refertothefollowingarticle: http://softwarecommunity.intel.com/articles/eng/2738.htm. Dependingonmachinestate,alsoexploretheoptionoflettingtheapplicationinformtheusertoselect alowerpowerprofile(whennecessary)formoreenergyefficientexecution. IntelPowerCheckerprovidesaquickmethodofassessingapplicationpowerefficiencyduringboth applicationactiveandidlemodes(MicrosoftWindows)onmobileplatformsusingtheIntelCore processorfamilyorIntelAtomprocessor:http://www.intel.com/partner/sat/pe. 4.4 Context Awareness Toolkits Tosimplifysomeoftheabovecontextawarenessissues,considertheuseofexistingcontextawareness toolkitssuchastheIntelMobilePlatformSoftwareDevelopmentKit(SDK),IntelLaptopGamingTDK, orIntelWeb2.0TDK. TheIntelMobilePlatformSDKisopensourceandavailableforbothWindowsandLinux.Thegoalsof theSDKincludemanagingconnectivitytransparently,effectivelybalancingpowerandperformance, usingavailablememoryanddiskspaceforlocaldatastoreandsynchronization,adaptingtodifferent displaytypes,managingnetworkbandwidth,andmanagingplatformdevicesandpluginmechanisms. ForSDKdetailsandhowtodownload,refertohttp://ossmpsdk.intel.com/. ForexamplesonhowtoaccessplatformpowerinformationusingtheIntelMobilePlatformSoftware DevelopmentKit,pleaserefertothefollowingarticles: http://softwarecommunity.intel.com/articles/eng/1070.htmand http://softwarecommunity.intel.com/articles/eng/1083.htm.

White Paper Energy-Efficient Software Guidelines; Page 7 of 12

TheIntelLaptopGamingTDKisavailableforWindowsXPandVistaandprovidesaneasyinterfaceto helpextendgamesbyaddingmobileawarefeaturestocreateabetterlaptopgamingexperience.For TDKdetailsandhowtodownload,refertohttp://softwarecommunity.intel.com/articles/eng/1017.htm. TheIntelWeb2.0TDKallowsdeveloperstoextractinformationabouttheplatform'sconfiguration(e.g., display,storage,andprocessor),andtheplatform'scontext(e.g.,bandwidth,connectivity,power,and location)withinabrowserusingJavaScript.ForTDKdetailsandhowtodownload,referto http://softwarecommunity.intel.com/articles/eng/1026.htm. 4.5 Unused Peripherals Tofurtherimproveenergyefficiency,exploretheoptionofdisablingoreventurningoffunused peripherals. Forinstance,incaseanapplicationexclusivelyusesBluetoothonthesystem,thedevicecouldbe disabledtemporarilyifthereisnoactivity,leadingtoimprovedenergyefficiency.

5 ToolsandTestingforEnergyEfficiency
Toanalyzeyourapplicationsenergyefficiency,itisrecommendedtoprofileplatformpowerusage duringapplicationruntime.Pleaserefertothelistoftoolsdescribedinthenextchaptertoassist analysis. Duringprofiling,trytoexplorethefollowingpowerrelatedaspectsofapplicationexecution: UnderstandthepowerimpactoftheapplicationatIdleandRunningstate ExamineCstatebehavior ExaminePstatebehavior Examinetimerinterrupts Examineinterruptstatistics Examinediskandfileaccessstatistics

5.1 Tools Arangeoftoolsareavailablethataddresspowerrelatedframeworks,optimizations,and measurements. 5.1.1 IntelPowerChecker(MicrosoftWindowsXP/WindowsVista*/Windows7) IntelPowerCheckercanbeusedtoquicklyassessidlepowerefficiency(C3stateresidency),platform timertick,andpowerawarebehaviorforapplicationsthatrunonmobileplatformsusingtheIntelCore processorfamilyorIntelAtomprocessor:http://www.intel.com/partner/sat/pe. 5.1.2 Perfmon(MicrosoftWindowsXP/WindowsVista/Windows7) Perfmoncanbeusedtoassistoptimizations,monitoringresultsoftuningandconfigurationscenarios, andtheunderstandingofaworkloadanditseffectonresourceusagetoidentifybottlenecks. http://softwarecommunity.intel.com/articles/eng/3449.htm.

White Paper Energy-Efficient Software Guidelines; Page 8 of 12

5.1.3 PwrTest/WindowsDriverKit(MicrosoftWindowsXP/WindowsVista/Windows7) ThePowerManagementTestToolenablesdevelopers,testers,andsystemintegratorstoexerciseand recordpowermanagementinformationfromtheplatform.PwrTestcanbeusedtoautomatesleepand resumetransitionsandrecordprocessorpowermanagementandbatteryinformationfromtheplatform overaperiodoftime:seehttp://msdn.microsoft.com/enus/library/ff550682.aspxand http://www.microsoft.com/whdc/system/pnppwr/powermgmt/PM_apps.mspx. 5.1.4 WindowsEventViewer/EventLog(MicrosoftWindowsXP/WindowsVista/Windows7) WindowsEventViewer/Logprovidesacentralizedlogservicetoreporteventsthathavetakenplace, suchasafailuretostartacomponentortocompleteanaction. Forinstance,thetoolcanbeusedtocapturetimertickchangeevents,whichhaveanindirecteffect onplatformenergyefficiency:http://en.wikipedia.org/wiki/Event_Viewer. 5.1.5 WindowsETW(MicrosoftWindowsXP/WindowsVista/Windows7) EventTracingforWindows(ETW)providesapplicationprogrammerstheabilitytostartandstopevent tracingsessions,instrumentanapplicationtoprovidetraceevents,andconsumetraceevents.Youcan usetheeventstodebuganapplicationandperformcapacityandperformanceanalysis:see http://msdn.microsoft.com/enus/library/bb968803(v=VS.85).aspx. 5.1.6 PowerInformer(MicrosoftWindowsXP/WindowsVista/Windows7) PowerInformerprovidesrelevantandcondensedplatformpowerinformationtothedeveloper, includingforinstancebatterystatus,CandPstateresidency,interruptrateanddisk/fileIOrates:see http://softwarecommunity.intel.com/articles/eng/3725.htm. 5.1.7 IntelApplicationEnergyToolkit(MicrosoftWindowsXP/WindowsVista/Windows7,Linux, AppleMacOS*) IntelApplicationEnergyToolkitisasetoftoolsdesignedtohelpsoftwaredevelopersandquality assuranceteamscreateandevaluatesoftwareapplicationsforpowerawareness: PowerStatusSimulatorsimulatesabatteryoperatedenvironmentforanapplicationrunning onaplatformthatisACpowered. ApplicationEnergyGraphingToolisaninteractivetoolthatcanmeasurethebatterypower consumptionofanapplicationovertime,logandgraphtheresultingdata. ApplicationEnergyCommandLineToolautomatestheprocessofdeterminingthetotalpower consumptionandnetpowerconsumptionofanapplicationrunningonabatteryoperated platform.

Seehttp://softwarecommunity.intel.com/articles/eng/1631.htm. 5.1.8 PowerTOP(Linux) PowerTOPhelpstopointoutthepowerinefficienciesofyourplatform.Thetoolshowshowwellthe platformisusingthevarioushardwarepowersavingfeaturesandculpritsoftwarecomponentsthatare preventingoptimalusage.Italsoprovidestuningsuggestionsonhowtoachievelowpower consumption:seehttp://www.lesswatts.org/projects/powertop/.

White Paper Energy-Efficient Software Guidelines; Page 9 of 12

5.1.9 BatteryLifeToolkit(BLTK)(Linux) BatteryLifeToolkit(BLTK)providesinfrastructuretomeasurelaptopbatterylife,bylaunchingtypical singleuserworkloadsforpowerperformancemeasurement:see http://www.lesswatts.org/projects/bltk/. 5.1.10 Linuxcommandlinetools Disk/Deviceactivity blktracegeneratestracesofIOtraffic:seehttp://linux.die.net/man/8/blktrace. iostatprovidesdeviceutilizationreportssuchasr/wpersecond:see http://linux.die.net/man/1/iostat.

Applicationactivity Others cpufreqinfodisplaysCPUtype,availablePstates,andgovernor:see http://linux.die.net/man/1/cpufreqinfo. stracetracessystemcalls:seehttp://linux.die.net/man/1/strace. fryskmonitorrunningprocessesandthreads:seehttp://sourceware.org/frysk/.

White Paper Energy-Efficient Software Guidelines; Page 10 of 12

OPTIMIZATIONNOTICE Intelcompilers,associatedlibrariesandassociateddevelopmenttoolsmayincludeorutilizeoptions thatoptimizeforinstructionsetsthatareavailableinbothIntelandnonIntelmicroprocessors(for exampleSIMDinstructionsets),butdonotoptimizeequallyfornonIntelmicroprocessors.Inaddition, certaincompileroptionsforIntelcompilers,includingsomethatarenotspecifictoIntelmicro architecture,arereservedforIntelmicroprocessors.ForadetaileddescriptionofIntelcompileroptions, includingtheinstructionsetsandspecificmicroprocessorstheyimplicate,pleaserefertotheIntel CompilerUserandReferenceGuidesunderCompilerOptions."Manylibraryroutinesthatarepartof IntelcompilerproductsaremorehighlyoptimizedforIntelmicroprocessorsthanforother microprocessors.WhilethecompilersandlibrariesinIntelcompilerproductsofferoptimizationsfor bothIntelandIntelcompatiblemicroprocessors,dependingontheoptionsyouselect,yourcodeand otherfactors,youlikelywillgetextraperformanceonIntelmicroprocessors. Intelcompilers,associatedlibrariesandassociateddevelopmenttoolsmayormaynotoptimizetothe samedegreefornonIntelmicroprocessorsforoptimizationsthatarenotuniquetoIntel microprocessors.TheseoptimizationsincludeIntelStreamingSIMDExtensions2(IntelSSE2),Intel StreamingSIMDExtensions3(IntelSSE3),andSupplementalStreamingSIMDExtensions3(Intel SSSE3)instructionsetsandotheroptimizations.Inteldoesnotguaranteetheavailability,functionality, oreffectivenessofanyoptimizationonmicroprocessorsnotmanufacturedbyIntel.Microprocessor dependentoptimizationsinthisproductareintendedforusewithIntelmicroprocessors. WhileIntelbelievesourcompilersandlibrariesareexcellentchoicestoassistinobtainingthebest performanceonIntelandnonIntelmicroprocessors,Intelrecommendsthatyouevaluateother compilersandlibrariestodeterminewhichbestmeetyourrequirements.Wehopetowinyourbusiness bystrivingtoofferthebestperformanceofanycompilerorlibrary;pleaseletusknowifyoufindwedo not. Noticerevision#20101101

White Paper Energy-Efficient Software Guidelines; Page 11 of 12

INFORMATIONINTHISDOCUMENTISPROVIDEDINCONNECTIONWITHINTELPRODUCTS.NOLICENSE, EXPRESSORIMPLIED,BYESTOPPELOROTHERWISE,TOANYINTELLECTUALPROPERTYRIGHTSIS GRANTEDBYTHISDOCUMENT.EXCEPTASPROVIDEDININTEL'STERMSANDCONDITIONSOFSALEFOR SUCHPRODUCTS,INTELASSUMESNOLIABILITYWHATSOEVER,ANDINTELDISCLAIMSANYEXPRESSOR IMPLIEDWARRANTY,RELATINGTOSALEAND/ORUSEOFINTELPRODUCTSINCLUDINGLIABILITYOR WARRANTIESRELATINGTOFITNESSFORAPARTICULARPURPOSE,MERCHANTABILITY,OR INFRINGEMENTOFANYPATENT,COPYRIGHTOROTHERINTELLECTUALPROPERTYRIGHT.Intelproducts arenotintendedforuseinmedical,lifesaving,lifesustaining,criticalcontrolorsafetysystems,orin nuclearfacilityapplications. Intelmaymakechangestospecificationsandproductdescriptionsatanytime,withoutnotice. Designersmustnotrelyontheabsenceorcharacteristicsofanyfeaturesorinstructionsmarked "reserved"or"undefined."Intelreservestheseforfuturedefinitionandshallhavenoresponsibility whatsoeverforconflictsorincompatibilitiesarisingfromfuturechangestothem.Theinformationhere issubjecttochangewithoutnotice.Donotfinalizeadesignwiththisinformation. Thiswhitepaper,aswellasthesoftwaredescribedinit,isfurnishedunderlicenseandmayonlybeused orcopiedinaccordancewiththetermsofthelicense.Theinformationinthisdocumentisfurnishedfor informationaluseonly,issubjecttochangewithoutnotice,andshouldnotbeconstruedasa commitmentbyIntelCorporation.IntelCorporationassumesnoresponsibilityorliabilityforanyerrors orinaccuraciesthatmayappearinthisdocumentoranysoftwarethatmaybeprovidedinassociation withthisdocument. Intelprocessornumbersarenotameasureofperformance.Processornumbersdifferentiatefeatures withineachprocessorfamily,notacrossdifferentprocessorfamilies.See www.intel.com/products/processor_numberfordetails. TheIntelprocessor/chipsetfamiliesmaycontaindesigndefectsorerrorsknownaserrata,whichmay causetheproducttodeviatefrompublishedspecifications.Currentcharacterizederrataareavailableon request. Copiesofdocuments,whichhaveanordernumberandarereferencedinthisdocument,orotherIntel literature,maybeobtainedbycalling18005484725,orbyvisitingIntel'sWebsite. Intel,theIntelLogo,Atom,Core,MMX,andVTunearetrademarksofIntelCorporationintheU.S.and othercountries. *Othernamesandbrandsmaybeclaimedasthepropertyofothers. Copyright2011,IntelCorporation.Allrightsreserved.

White Paper Energy-Efficient Software Guidelines; Page 12 of 12

Potrebbero piacerti anche