¿Por qué diferentes cargas de CPU al 100% provocan diferentes temperaturas en la CPU?

¿Por qué diferentes cargas de CPU al 100% provocan diferentes temperaturas en la CPU?

He estado realizando pruebas entre el uso de CPUz y OCCT. Me di cuenta de que si configuro CPUz para estresar la CPU con múltiples subprocesos, nunca superará los 70c. Por otro lado, al ejecutar OCCT para cargar en la CPU, se disparará más allá de 75c instantáneamente y luego, a veces, incluso detendrá la prueba en 85c.

¿Que está sucediendo aquí? Siempre entendí que, si bien las tarjetas de video tienen muchos núcleos que deben estresarse por separado, las CPU son simples. Un bucle for básico puede cargar el 100% de una CPU. Un montón de bucles for ejecutados en múltiples subprocesos pueden cargar cada núcleo. ¿Cómo es posible que OCCT esté calentando mucho más mi CPU? ¿Qué le obliga a hacer que CPUz no pueda?

Alguna información general: la CPU es Intel Core i7-4790k. Turbo boost está habilitado, pero creo que simplemente se queda al 5% cuando cualquiera de los procesos se está ejecutando

Respuesta1

El uso de la CPU es una medida de cuántos recursos tiene disponible la CPU, pero hay muchos tipos diferentes de instrucciones que se pueden procesar y todas tienen diferentes requisitos de procesamiento y memoria.

Una tarea que consume mucha memoria puede hacer que la CPU se detenga mientras recupera datos de la memoria y, por lo tanto, reduce la capacidad efectiva.instrucciónrendimiento sin dejar de tener la CPU "en uso".

También hay muchas partes diferentes de la CPU que pueden saturarse de diferentes maneras.

De WikichipsPuente de arena uArch:

ingrese la descripción de la imagen aquí

Puede ver que tenemos una interfaz decodificadora de instrucciones inicial, que para flujos de instrucciones complejos y diversos puede tener dificultades para mantener lleno el resto del proceso.

Si ustedsoloSi tiene sumas de números enteros, podrá utilizar 3 de las unidades de ejecución centrales, ya que la CPU tiene 3 unidades INT ALU. Si solo tiene multiplicaciones de punto flotante, entonces solo puede usar la única unidad FPU MUL (multiplicación).

La CPU también funciona como una canalización y, mientras una unidad está en uso en una unidad de ejecución, es posible que pueda programar una operación.en el próximo ciclo. Esto significa que un flujo de instrucción diverso puede hacer un mejor uso de los recursos, ya que una unidad que no esté en uso se puede programar en la misma UE, pero con un tipo de instrucción diferente. Diferentes instrucciones también tendrán diferentes tiempos de ejecución y tendrán un conjunto mayor o menor de circuitos asociados para ejecutar. Una simple suma puede tomar uno o dos ciclos de reloj, mientras que una instrucción de punto flotante puede tomar más tiempo y tener una mayor cantidad de circuitos involucrados. Tardar más podría significar que utiliza más energía, al igual que el área más grande de los circuitos. Alternativamente, el hecho de que la instrucción demore más podría significar que el circuito de programación frontal se detiene y usa brevemente menos energía mientras espera las unidades de ejecución disponibles, mientras que las instrucciones más pequeñas y rápidas usan más circuitos generales si se incluyen otras partes de la CPU.

Como resultado de hacerllenoPara utilizar la CPU se necesita un flujo de instrucciones diverso, y lo que puede ejercitar una CPU puede no ejercer completamente otra debido a la diferente disposición y cantidad de unidades de ejecución y sus capacidades.

Las unidades de ejecución pueden funcionar con "baja potencia" con el método moderno de activación de energía y, como resultado, no contribuir a la producción de calor del dispositivo, o contribuir mucho menos.

Los cachés también contribuyen al consumo de energía. El uso del caché significará que las instrucciones y los datos se pueden recuperar y, como resultado, ejecutar más rápido que una rutina con un conjunto de datos en la memoria que es demasiado grande para un caché.

Como resultado, diferentes programas o secuencias de instrucciones pueden causar diferentes picos de consumo de energía y, por tanto, diferentes temperaturas.

Las diferencias arquitectónicas entre generaciones de procesadores, e incluso en la misma generación, donde los tamaños de caché, las opciones de procesador y la diferente disponibilidad de instrucciones pueden tener un efecto.

Respuesta2

Entiendo que desee saber por qué ejecutar una prueba de crisis de subprocesos múltiples no calienta la CPU tanto como una prueba de subproceso único.

La explicación simple es que el culpable es Turbo Boost, ya que se desactiva cuando la CPU trabaja con la misma intensidad en varios núcleos. Solo está habilitado cuando se usa mucho un núcleo (y solo un núcleo).

Cuando Turbo Boost está activo, desvía más potencia al núcleo impulsado, reduciendo la potencia a los otros núcleos y, por lo tanto, ralentizándolos.

El núcleo potenciado corre a mayor velocidad y se calentaría más que un núcleo no potenciado. Esto es capturado por el sensor, que luego informará la temperatura de un núcleo como la de toda la CPU.

Respuesta3

La "carga" (o uso) de la CPU es un monitor de actividad para indicar qué porcentaje del tiempo de la CPU se dedica a actividades "útiles" frente al tiempo "inactivo". El sistema operativo determina qué es actividad "útil" y qué es tiempo "inactivo".

Con una carga de CPU del cero por ciento, el sistema operativo no programa ningún proceso de usuario durante ese intervalo de tiempo.
Con una carga de CPU del 50%, el sistema operativo ha programado aproximadamente la mitad del intervalo de tiempo para los procesos del usuario, y la otra mitad de ese intervalo de tiempo se pasó en el ciclo inactivo. Incluso si hay un solo proceso de usuario, es posible que no pueda consumir el 100% de la carga de la CPU porque ese proceso no consume mucha CPU y debe reprogramarse mientras, por ejemplo, se espera que se complete una operación de E/S.
Con una carga de CPU del 100%, el sistema operativo ha programado todo el intervalo de tiempo para los procesos del usuario.

Tenga en cuenta que la CPU en realidad siempre está ocupada (cuando está encendida), es decir, siempre ejecutando instrucciones. Si ningún proceso (de usuario) está listo para ejecutarse, entonces el programador del sistema operativo debe realizar su ciclo inactivo.

La temperatura de la CPU es consecuencia de la energía eléctrica consumida por los circuitos de la CPU. A medida que se producen más cambios de transistores, se requiere y consume más energía y la temperatura de la CPU aumenta.
Este consumo de energía no lo indica la "carga" de la CPU, que es simplemente un monitor de actividad basado en el tiempo.
Un proceso puede mantener la CPU "ocupada" (en términos de tiempo) simplemente copiando o moviendo datos (por ejemplo, cargar y almacenar instrucciones) en la memoria (lo que no supone una carga de energía adicional significativa por encima del estado inactivo).
Mientras que otro proceso computacional intensivo podría realizar cálculos (por ejemplo, instrucciones de multiplicación y división) que utilizan muchos otros circuitos en la CPU, como la ALU (unidad aritmética/lógica) y la FPU (unidad de punto flotante).

IOW es la combinación de instrucciones (es decir, los tipos de instrucciones) que ejecuta el proceso lo que determina la energía eléctrica consumida y el nivel de temperatura posterior.
El sistema operativo no es capaz de medir este consumo de energía y solo informa una medición de actividad basada en el tiempo utilizando los sensores de temperatura y carga de la CPU.

Respuesta4

Te daré un ejemplo. Haz dos bucles:

for (i = 0; i < 1000000000; ++i) {
    x += a [i];
}

y

for (i = 0; i < 1000000000; ++i) {
    x += a [i];
    y += a [i];
    z += a [i];
}

En el primer ciclo, el procesador tiene que esperar a que finalice la adición anterior antes de poder comenzar la siguiente. Si la suma tiene una latencia de 3 ciclos, entonces el procesador realiza una suma cada 3 ciclos. La carga de la CPU es del 100%, pero la CPU en realidad no está haciendo mucho trabajo.

En el segundo ciclo, también hay una iteración cada tres ciclos, pero como las sumas son independientes, el procesador realizará 3 sumas cada 3 ciclos, haciendo 3 veces más trabajo. La carga de la CPU sigue siendo del 100%, pero 3 veces más trabajo producirá mucho más calor.

Por lo tanto, obtendrá más calor con un código que utilice más recursos informáticos disponibles en cada ciclo.

información relacionada