- L'EPP defineix quant prioritza la CPU el rendiment davant l'estalvi energètic, usant rangs com a 0–255 o 0–100 % segons la plataforma.
- Linux exposa EPP via sysfs i conductors com intel_pstate o amd-pstate-epp, mentre que Windows ho gestiona amb PerfEnergyPreference i CPPC.
- En processadors moderns (Intel Meteor Lake, Ryzen mòbils, híbrids) lʻajust dʻEPP impacta en turbo, consum, temperatura i durada de bateria.
- Eines com auto-epp a Linux o CPUFriend a macOS permeten afinar finament la preferència energia-rendiment més enllà dels perfils per defecte.

Si has arribat fins aquí buscant què és exactament EPP (Energy Performance Preference) i com afecta el rendiment i consum de la teva CPU a Windows, Linux, macOS o fins i tot a processadors Intel i AMD moderns, ets al lloc correcte. El concepte sembla senzill, però és ple de matisos, rangs numèrics, modes, drivers i eines que poden marcar una gran diferència en temperatura, bateria i potència.
Al llarg d'aquest article desgranarem de forma clara com funciona el paràmetre EPP i els diferents modes d'energia-rendiment a cada sistema: des dels fitxers de /sys a Linux i el driver intel_pstate, fins a la configuració oculta de Windows amb PerfEnergyPreference, passant per eines d'ajust fi com CPUFriend a macOS o scripts com auto-epp en distribucions modernes. La idea és que entenguis què fa cada manera, com es configura i quines implicacions reals té al teu dia a dia.
Què és EPP (Energy Performance Preference)?
El terme EPP, Energy Performance Preference , fa referència a un valor o pista que es dóna al processador per indicar què prioritzar: el màxim rendiment, l'estalvi d'energia o un punt intermedi. En sistemes moderns, aquest paràmetre s'implementa principalment a través de registres com ara EPP (Energy Performance Preference) o EPB (Energy Performance Bias) , o mitjançant interfícies estandarditzades com CPPC v2 (Collaborative Processor Performance Control).
A la pràctica, aquest ajust influeix en l'agressivitat amb què la CPU fa “turbo” o escala freqüències . Un valor més orientat al rendiment fa que el processador pugi ràpid a la màxima freqüència, mentre que un valor orientat a l'eficiència fa que pugi més a poc a poc, romangui més temps en estats de baix consum i, en molts casos, redueixi temperatures i soroll a costa d'una mica de potència.
Rangs numèrics típics d'EPP
En plataformes que exposen l'EPP com a valor brut, se sol treballar amb un rang numèric de 0 a 255 . Aquests números s'interpreten així:
- 0: prioritat total al rendiment, la CPU cerca anar el més ràpid possible.
- 255: prioritat màxima a l'eficiència energètica, puja menys de voltes.
- Valors intermedis: equilibris entre rendiment i estalvi que el fabricant sol agrupar en modes com
performance,balance_performance,balance_poweropower.
Aquests rangs s'usen tant a Linux (per exemple amb els drivers intel_pstate o amd-pstate-epp), com a macOS en configuracions avançades amb CPUFriend, o en la lògica interna de Windows quan programa registres com el de PerfEnergyPreference a través de CPPC.
EPP a Linux: fitxers sysfs i valors disponibles
En sistemes GNU/Linux moderns, la preferència d'energia-rendiment es gestiona mitjançant interfícies al sistema de fitxers sysfs . Per a cada nucli de CPU hi ha un fitxer clau:
La preferència actual d'energia-rendiment es pot consultar a /sys/devices/system/cpu/cpu#/cpufreq/energy_performance_preference on cpu# és l'identificador del nucli, per exemple cpu0. Llegint aquest fitxer veuràs valors com performance, balance_performance, balance_power o power, o fins i tot un nombre entre 0 i 255 si el sistema permet valors crus.
Per saber quines maneres admet el maquinari i el driver, disposes de /sys/devices/system/cpu/cpu#/cpufreq/energy_performance_available_preferences, on veureu llistades les cadenes de text acceptades. Això és molt útil per entendre quines combinacions de rendiment i eficiència són suportades per la teva plataforma concreta.
A molts sistemes es permet a més escriure directament un valor numèric de 0 a 255 en energy_performance_preference. Com més a prop de 0, més rendiment; com més a prop de 255, més eficiència. Aquest control granular és ideal per als que volen afinar al màxim, encara que a la pràctica la majoria d'usuaris es queden amb els modes predefinits llegibles per nom.
Exemple pràctic a Linux amb AMD-Pstate-EPP i auto-epp
En maquinari AMD modern, especialment a portàtils amb processadors Ryzen com un AMD Ryzen 7 7840U, moltes distribucions com openSUSE Tumbleweed activen per defecte el driver amd-pstate-epp. Aquest driver apareix, per exemple, en llegir /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver, on veuràs la cadena amd-pstate-epp quan està en ús.
Normalment, l'estat d'aquest driver es consulta a /sys/devices/system/cpu/amd_pstate/status, on el valor active indica que està desplegat com a mecanisme d'escalat principal. A més, el governador per defecte en molts portàtils moderns sol ser powersave, que vist des del driver AMD no significa “anar lent”, sinó aplicar una lògica similar a schedutil o ondemand però optimitzada per al maquinari concret.
Per a la capa d'usuari, escriptoris com KDE Plasma o GNOME es recolzen a power-profils-daemon, un servei de fons que exposa perfils com Rendiment, Equilibrat o Estalvi d'energia. En un sistema amb power-profiles-daemon.service actiu, és freqüent configurar simplement “Rendiment en CA” i “Equilibrat en bateria”, deixant que el dimoni ajusti internament freqüències, EPP i governadors.
Sobre aquesta base, molts usuaris afegeixen eines addicionals com auto-epp, un script que automatitza el canvi d'EPP usant el driver AMD-Pstate. Aquesta utilitat llegeix una configuració a /etc/auto-epp.conf amb variables com epp_state_for_AC y epp_state_for_BAT, i aplica estats com performance, balance_performance, balance_power o power segons si lequip està endollat o en bateria.
Imagina un portàtil configurat inicialment amb epp_state_for_AC=balance_performance y epp_state_for_BAT=power. En aquest cas, el mode de bateria ultraconservador pot limitar la freqüència d'un Ryzen 7840U al voltant d'1,4 GHz fins i tot en càrrega, quan el turbo màxim d'un sol nucli ronda els 5,1 GHz. El resultat és una sensació d'equip “capat” que no esprem el processador.
Canviant la configuració a epp_state_for_AC=performance y epp_state_for_BAT=balance_performance, s'aconsegueix que a CA la CPU s'acosti al seu màxim potencial, mentre que en bateria manté aproximadament un 90-95% del rendiment màxim quan cal, però sense disparar el consum de manera tan extrema.
Addicionalment, configuracions com balance_power per a bateria ofereixen un equilibri encara més eficient, amb un rendiment proper al 85-90% però amb un estalvi d'energia notable. Usuaris que han provat aquestes combinacions reporten millores de fins a una hora extra d'autonomia en mode balance_performance i temperatures mitjanes reduïdes entorn de 3-5 ºC, arribant fins i tot a descensos d'uns 8 ºC en passar a balance_power en tasques lleugeres com ara navegació web i edició de text.
Maneres EPP a Intel Meteor Lake: impacte en rendiment i consum

La família Intel Meteor Lake , amb models com el Core Ultra 7 155H, explota molt bé el concepte d'EPP. En portàtils recents, aquests processadors permeten canviar entre modes d' EPP equilibrat, rendiment i estalvi d'energia , cosa que afecta tant la CPU com la gràfica integrada ( tGPU ) i el consum global de l'equip.
En proves sintètiques de GPU com 3DMark Wild Life Extreme , el mode EPP equilibrat ha mostrat valors al voltant de 91,35 FPS amb un pic de 69 W , mentre que el mode rendiment es queda aproximadament en 87,67 FPS però amb pics de fins a 82 W. El mode estalvi d'energia ronda els 80,93 FPS amb un màxim de 63 W. Curiosament, la manera “rendiment” no sempre aporta més FPS davant de l'equilibrat, però sí que dispara més el consum.
En benchmarks de navegador com JetStream 2 amb Firefox i Selenium , el mode rendiment obté al voltant d'un 10% més de puntuació que l'equilibrat, a costa de pujar el consum de CPU d'uns 58 W a prop de 63 W. En mode estalvi, el rendiment cau a aproximadament la meitat, però la CPU pot moure's a penes en 20 xifres de l'ordre de 15.464 punts davant de 8.555 (equilibrat) i 7.652 (rendiment).
En aplicacions com GIMP , el mode de baix consum fa que les tasques triguin gairebé el doble, però amb consums que baixen a uns 18 W enfront de 44 W o 53 W dels altres modes, cosa que és molt significativa en portàtils fins. A Blender 4.0 , però, amb prou feines hi ha diferència apreciable en rendiment entre modes, encara que el mode estalvi redueix el consum al voltant de 10 W i limita la freqüència a uns 2,8 GHz màxims.
Si s'hi afegeixen tots els benchmarks, s'observa que el mode rendiment supera l'equilibrat per un marge modest, amb una mica com 445,6 punts davant 429 , mentre que el mode d'estalvi es queda força endarrerit al voltant de 316,35 punts . Això implica una millora de només un 4% en puntuació total a canvi d'un increment de consum proper al 22% en mode rendiment, cosa que no sempre val la pena excepte en escenaris molt concrets.
A nivell de freqüències, el mode d'estalvi limita la mitjana a uns 2414 MHz , mentre que el mode equilibrat sol rondar els 3193 MHz i el mode rendiment puja a aproximadament 3651 MHz . Paral·lelament, les temperatures mitjanes baixen al voltant de 8 graus en el mode d'estalvi, amb un consum mitjà que s'aproxima a la meitat del mode de rendiment, cosa que deixa clar com l'EPP pot inclinar de forma dràstica l' equilibri entre silenci, durada de bateria i potència bruta.
EPP i perfEnergyPreference a Windows
En Windows, el control equivalent a l'EPP s'exposa mitjançant la configuració oculta PerfEnergyPreference, que defineix el valor que es programa al registre de preferència energia-rendiment en sistemes que implementen la versió 2 de la interfície CPPC i treballen en mode autònom.
el paràmetre PerfEnergyPreference s'expressa com a percentatge entre 0 i 100. Un valor de 0 fa que Windows programi el registre intern a 0, prioritzant per complet el rendiment. Un valor de 100 es tradueix internament a 255, inclinant totalment la balança cap a lestalvi denergia. Per a valors intermedis, el sistema aplica la fórmula (valor * 255) / 100, de manera que es mapeja el rang 0-100% al rang 0-255 que entén el maquinari.
Aquest ajustament està disponible com a part de les polítiques d'energia, encara que se sol marcar com a opció oculta . A nivell d'àlies:
- En proveïment de Windows:
Common\Power\Policy\Settings\Processor\PerfEnergyPreferenceyPerfEnergyPreference1. - En
powercfg: s'exposen comPERFEPPyPERFEPP1.
Els valors acceptats van des de 0 a 100 i s'apliquen en diferents edicions del sistema: Windows 10 d'escriptori (Home, Pro, Enterprise, Education) suporta aquest ajustament en arquitectures x86 i x64, Windows 10 Mobile només a ARM, i Windows 11 d'escriptori a x64 i ARM. En molts equips portàtils moderns, el fabricant preconfigura aquests valors en els plans denergia propis, i toquetejar-los pot canviar notablement la forma en què la CPU puja i baixa de voltes, i fins i tot ajudar a fer que Windows 11 consumeixi menys bateria.
Ajust d'EPP i turbo a macOS amb CPUFriend
En macOS, Apple fa servir el seu propi sistema de gestió d'energia basat en XCPM (XNU CPU Power Management) i al plugin X86PlatformPlugin. Perquè funcioni correctament en maquinari compatible (com Haswell o posterior), és important que el kernel carregui aquest plugin i que s'hagi configurat bé una taula ACPI de tipus SSDT-PLUG apuntant al primer fil lògic del processador (CP00 o similar).
En equips en què la gestió nativa no és suficient o es vol afinar encara més, es pot recórrer a eines com CPUFriend i l'script auxiliar CPUFriendFriend. Aquestes utilitats permeten generar un CPUFriendDataProvider.kext o un ssdt_data.aml que injecten dades d'energia personalitzades, incloent valors clau com el LFM (Low Frequency Mode), el mateix EPP i una crida Biaix de rendiment.
L' LFM s'interpreta com el “sòl” de freqüència a què pot baixar la CPU en repòs. Per determinar-ho, es pot consultar el camp TDP-down Frequency a Intel ARK, o utilitzar valors recomanats, com ara:
| Generació | LFM | Equivalència aproximada |
|---|---|---|
| Portàtils Broadwell i posteriors | 08 | ~ 800 MHz |
| Sobretaula Broadwell i posteriors | 0A | ~ 1000 MHz |
| Haswell/Broadwell HEDT/servidor (X99) | 0D | ~ 1300 MHz |
| Skylake+ HEDT/servidor (X299) | 0C | ~ 1200 MHz |
Aquests valors es codifiquen com a multiplicadors en hexadecimal, per exemple, 13 per a 1,3 GHz , i afecten com macOS maneja les transicions de son i despertar.
el paràmetre EPP a macOS es configura també com un valor entre 00 y FF on 00 indica que el sistema ha de permetre que la CPU torbi el més ràpid possible, i FF que ho ha de fer de manera molt suau. Per convenció se sol agrupar així:
| Rang EPP | Comportament |
|---|---|
| 0x00-0x3F | màxim rendiment |
| 0x40-0x7F | Rendiment equilibrat |
| 0x80-0xBF | Equilibri tirant a estalvi |
| 0xC0-0xFF | Estalvi màxim |
És important tenir en compte que només SMBIOS Skylake i posteriors suporten oficialment aquest camp d'EPP, i que un mal ajustament pot trencar l'estabilitat, provocar kernel panics amb missatges com Sleep Wake failure in efi o empitjorar el consum en lloc de millorar-lo.
En arquitectures més antigues com Sandy Bridge i Ivy Bridge, macOS no utilitza XCPM de forma nativa en versions recents, per la qual cosa es recorre a scripts com ssdtPRGen per generar taules de gestió denergia (SSDT-PM) específiques. Aquest enfocament es combina amb ajustaments a ACPI (per exemple, manipular entrades _PSS o _PPC) i pot influir indirectament en com el sistema reparteix freqüències i estats d'energia, encara que no exposi un EPP tan directe com a Skylake+.
El driver intel_pstate a Linux i les seves maneres
el driver intel_pstate forma part del subsistema d'escalat de rendiment de CPU (CPUFreq) al nucli Linux, i està dissenyat per a processadors Intel des de Sandy Bridge en endavant (encara que no tots els models estan suportats). A diferència de drivers genèrics com acpi-cpufreq, treballa directament amb la interfície de P-states del maquinari i mapeja aquests estats a freqüències entenedores per la resta del sistema.
Per a cada CPU lògica, intel_pstate crea una política independent, ja que la interfície de maquinari s'exposa a nivell de nucli. No és un mòdul descarregable: es configura mitjançant paràmetres de línia de arrencada del nucli (com intel_pstate=active o intel_pstate=passive), i es controla en calent a través de sysfs en /sys/devices/system/cpu/intel_pstate/.
Aquest driver pot operar en dues maneres:
- Mode actiu: utilitza els seus propis algorismes de selecció de P-state, o deixa que el maquinari (HWP) es gestioni només rebent pistes.
- Mode passiu: es comporta com un driver
CPUFreqestàndard, atenent els valors que li demanin governadors genèrics comschedutiloondemand.
En mode actiu amb HWP, el driver confia que el processador seleccioni automàticament els P-states, però li envia “hints” a través de registres com el EPP o el EPB. En aquest mode, els algorismes disponibles s'anomenen també powersave y performance, encara que no es comporten igual que els governadors genèrics homònims, cosa que sol generar confusió.
Quan HWP està activat i tries l'algorisme performance, intel_pstate escriu un valor 0 a l'EPP/EPB, indicant que el focus ha d'estar al màxim rendiment. Això ignora qualsevol configuració prèvia d'EPP que s'hagués fet des de sysfs i rebutja nous intents de canviar-lo a un valor diferent de 0.
Si utilitzes l'algorisme powersave amb HWP, el driver respecta el valor d'EPP/EPB configurat a sysfs o el que hagi deixat la UEFI/BIOS, cosa que normalment fa que el maquinari es comporti de manera menys agressiva i afavoreixi el equilibri o l'eficiència en lloc del bec de potència.
En mode actiu sense HWP, intel_pstate implementa el seu propi càlcul de P-states basant-se en comptadors interns del processador. L'algorisme performance selecciona sempre el P-state màxim permès, mentre que powersave ajusta el P-state de manera proporcional a la utilització de CPU, amb una cadència mínima d'uns 10 ms entre ajustaments.
En mode passiu, el driver es presenta al sistema com intel_cpufreq i exposa el rang complet de P-states (incloent turbo) als governadors genèrics. D'aquesta manera, la política d'escalat es decideix externament, mentre que intel_pstate es limita a traduir les peticions en canvis reals de freqüència.
Turbo, límits de P-state i EPP a intel_pstate
En processadors Intel, el rang de P-states es divideix normalment en dos subconjunts: els P-states sostenibles (per sota del llindar de turbo) i els turbo P-states , que només són mantenibles durant intervals limitats pel pressupost tèrmic i de potència.
el driver intel_pstate sempre exposa tot el rang de P-states al sistema, incloent el tram turbo, el que fa que es facin servir estats turbo amb més freqüència que amb acpi-cpufreq, el qual sol representar tot el rang turbo amb una sola entrada a les taules _PSS. Aquesta diferència és clau a l'hora que governadors com schedutil puguin aprofitar més el sostre de rendiment.
Per limitar l'ús de turbo globalment, existeix l'atribut no_turbo en /sys/devices/system/cpu/intel_pstate/. Quan es posa a 1, intel_pstate deixa d'usar qualsevol P-state per sobre del llindar de turbo, encara que la freqüència màxima reportada (cpuinfo_max_freq) segueixi reflectint el valor turbo màxim. Aquesta discrepància es resol internament limitant els valors màxims de scaling_max_freq y scaling_min_freq al sostre no turbo.
A més no_turbo, el driver disposa de diversos atributs globals importants:
max_perf_pct: percentatge màxim del nivell de rendiment (turbo inclòs) que es pot sol·licitar.min_perf_pct: percentatge mínim de rendiment permès.num_pstatesyturbo_pct: nombre total de P-states i proporció que ocupa el tram turbo, quan són constants entre CPUs.status: indica si el driver està en modeactive,passiveuoff, i permet canviar entre modes.hwp_dynamic_boost: quan s'usa HWP, permet pujar temporalment el límit mínim de P-state en despertar d'I/O per millorar la reactivitat.
D'altra banda, quan HWP està disponible, intel_pstate habilita una interfície semblant a l'EPP descrit abans: energy_performance_preference y energy_performance_available_preferences per a cada CPU a /sys/devices/system/cpu/cpu#/cpufreq/. Des d'aquí, l'usuari pot triar valors semàntics com ara performance, balance_performance, balance_power, power o default, o fins i tot escriure un sencer entre 0 i 255 si EPP està suportat directament.
Darrere d'aquestes cadenes, el driver tradueix internament a un valor numèric que s'escriu al registre de Energy-Performance Preference (EPP) oa l'Energy-Performance Bias (EPB), de manera molt similar a allò explicat per a Windows amb el paràmetre PerfEnergyPreference.
intel_pstate davant acpi-cpufreq i models híbrids
En molts sistemes, la BIOS/UEFI proporciona taules ACPI amb objectes _PSS que enumeren P-stats suportats. El driver acpi-cpufreq utilitza aquestes dades per escalar freqüència, però queda limitat als estats que apareixen llistats, i representa el tram turbo amb una sola entrada la freqüència del qual és, per convenció, 1 MHz major que la del P-state no turbo més alt.
Aquest enfocament fa que els governadors genèrics tendeixin a quedar-se més temps en estats no turbo, perquè el tram turbo ocupa “només” 1 MHz de tot el rang i sembla marginal en termes de percentatge. A més, en sistemes amb TDP configurable, una mala coordinació entre el llindar de turbo reial i les entrades _PSS pot provocar que hi hagi diverses entrades turbo i que desactivar turbo no sigui tan directe com ignorar la darrera entrada.
En canvi intel_pstate coneix el llindar exacte de turbo i exposa el rang sencer, cosa que facilita una gestió coherent de l'atribut no_turbo i un ús més agressiu i eficient dels estats turbo quan es desitgen.
En processadors híbrids (nuclis grans i petits), intel_pstate habilita a més Capacity-Aware Scheduling (CAS) i, si el nucli està configurat amb CONFIG_ENERGY_MODEL, activa Energy-Aware Scheduling (EAS). En aquest context, defineix capacitats per CPU basades en els nivells HWP màxims i construeix un model d'energia “artificial” per ajudar el planificador a col·locar tasques on siguin més eficients, afavorint cors petits o poc carregats sempre que tinguin capacitat suficient.
Aquesta combinació de CAS + EAS, juntament amb l'ús d'EPP/HWP, permet que en processadors moderns el sistema sigui capaç de situar tasques lleugeres en nuclis eficients amb un cost energètic molt baix, reservant els nuclis grans per a càrregues intensives, tot ajustat per les preferències d'energia-rendiment establertes.
Ajuntant tot això, l'EPP es converteix en una mena de “comandament de barreja” entre potència i eficiència que travessa sistemes operatius, drivers i arquitectures: a Linux es controla a través de sysfs i drivers com intel_pstate o amd-pstate-epp, a Windows mitjançant paràmetres com PerfEnergyPreference integrats a CPPC, i en macOS amb eines de baix nivell com CPUFriend i XCPM. Entendre com s'expressa (0-255, 0-100 %), quines maneres semàntiques ofereix (performance, balance_performance, balance_power, power) i com interactua amb tecnologies com HWP, turbo o l'agendador híbrid és la clau per ajustar de veritat el teu equip, ja sigui per esprémer fins al darrer equip. agraeix.
Redactor apassionat del món dels bytes i la tecnologia en general. M'encanta compartir els meus coneixements a través de l'escriptura, i això és el que faré en aquest bloc, mostrar tot el més interessant sobre gadgets, programari, maquinari, tendències tecnològiques, i més. El meu objectiu és ajudar-te a navegar pel món digital de forma senzilla i entretinguda.