2 votos

Apple M2 utilizará núcleos de rendimiento cuando esté enchufado

Me he dado cuenta de que cada vez que se conecta a mi M2 Air macbook seguirá utilizando núcleos de eficiencia predominantemente, que se reloj inferior.

Me gustaría que en realidad utilizar los núcleos de rendimiento en primer lugar si estoy enchufado que es por lo general cuando im haciendo el trabajo.

Está enchufado con 100W (adaptador de corriente de macs de 16" antiguos de 2019), así que definitivamente tiene potencia más que suficiente de la que sacar.

Tampoco tiene problemas con el calor. Las temperaturas son casi siempre a 60C (he hecho algunas modificaciones menores con almohadillas térmicas a este aire mac y nunca vi que se sobrecaliente en mi uso diario).

También en la sección de batería tengo Modo de bajo consumo = Nunca.

En resumen estoy seguro de que no es falta de potencia y no es la temperatura, parece estar programado para hacer esto.

¿Hay alguna forma de influir en esto?

6voto

Andy Griffiths Puntos 1

No creo que los usuarios tengan mucha influencia sobre qué núcleos se utilizan y cuándo. Los creadores de aplicaciones pueden establecer las prioridades, pero Apple ha trabajado mucho para racionalizar el proceso de distribución en torno a los objetivos clave de eficiencia energética y garantizar que los subprocesos reciban la cantidad justa de energía que necesitan.

Gran parte de la carga de trabajo se sigue clasificando como de baja prioridad, lo que significa que se relega a los núcleos de eficiencia y, por supuesto, la carga de trabajo de alta prioridad puede seguir viéndose afectada por otros factores, como estar ligada a la E/S.

Howard Oakley ha analizado a fondo cómo funciona todo esto y muestra cómo los núcleos de eficiencia probablemente hacen más trabajo del que crees.

https://eclecticlight.co/2022/10/03/making-the-most-of-apple-silicon-power-1-m-series-chips-are-different/

Hay algo de información sobre políticas y cómo el usuario puede tener cierto control sobre la QoS, que puede ser lo que estás buscando. Pero no se puede promover cargas de trabajo de eficiencia a rendimiento QoS (de los cuales hay varios niveles), sólo degradarlos (y volver a promover en su caso). Su QoS es establecida por el código de la aplicación cuando se crea una tarea, ya sea pThread, Dispatch queue, async / await.

https://eclecticlight.co/2022/10/20/making-the-most-of-apple-silicon-power-5-user-control/

Véase también este debate anterior ¿Cómo decide macOS cuándo utilizar los núcleos de rendimiento de M1 frente a los de eficiencia?

1voto

Jose Chavez Puntos 645

Entiendo por sus comentarios que es en particular Intellij IDEA que desea utilizar los núcleos de rendimiento, y no sólo los núcleos de eficiencia.

Puede sugerir al sistema que desea que una programación en ejecución utilice núcleos de rendimiento ejecutando un comando en el Terminal como el siguiente:

taskpolicy -B -p <PID>

donde está el ID de proceso de ese programa. Puedes buscarlo en el Monitor de Actividad o usando el comando ps mando.

Tenga en cuenta que esto no es una garantía de que se utilizarán los núcleos de rendimiento, ya que hay casos en los que esto no es posible. Por ejemplo, si tienes más hilos ejecutables que son elegibles para núcleos de rendimiento que núcleos físicos, el rendimiento general del sistema sería mayor ejecutando algunos de ellos en núcleos de rendimiento en lugar de no ejecutarlos en absoluto.

Puede inspeccionar cuáles son las políticas QoS actuales solicitadas y efectivas para un programa en ejecución, ejecutando este comando en el terminal:

sudo taskinfo <PID>

sustitúyalo de nuevo por el ID del proceso que desea examinar.

Verá allí, en particular, si el proceso está actualmente programado con "prioridad de fondo" (lo que normalmente significa que se ejecutará en núcleos de eficiencia) - y puede ver la abrazadera QoS (piense en esto como la máxima calidad de servicio, que ha solicitado que se proporcione a este programa en ejecución).

Además de la "prioridad de fondo" que podemos manipular con la función taskpolicy anterior, también podemos establecer otras políticas de QoS. Como por ejemplo establecer un nuevo nivel de rendimiento solicitado:

taskpolicy -t 5 -p <PID>

esto solicitará que se configure un proceso para el nivel de rendimiento 5 (los niveles 0-5 están disponibles, 3 es el predeterminado).

Del mismo modo se puede utilizar:

taskpolicy -l 5 -p <PID>

para establecer el nivel de latencia (los niveles 0-5 están disponibles, 3 es el predeterminado).

Para obtener una visión general de todo el sistema, puede ejecutar el comando powermetrics programa. Utilice el --show-process-qos-tiers para mostrar los niveles de QoS - por ejemplo una línea de comando como esta:

sudo powermetrics --show-process-qos --show-process-qos-tiers --show-cpu-qos --samplers tasks -n 10 | less

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X