Alcanzando Turbo: alineando la percepción con las métricas de frecuencia de AMD

Este artículo de Sep 2019 es para ayuda de un lector, por si se preguntan a que viene ahora

Para aquellos que vigilan de cerca el hardware del consumidor, AMD recientemente ha estado involucrado en un alboroto menor con algunos de sus defensores más vocales sobre los nuevos procesadores Ryzen 3000. Algunos usuarios informan que las frecuencias de turbo son mucho más bajas que las anunciadas, y una serie de publicaciones contradictorias de socios de AMD han generado mucha confusión. Desde entonces, AMD ha publicado una actualización que identifica un problema y ofrece una solución, pero parte de todo esto se reduce a lo que significa turbo y cómo los procesadores AMD difieren de Intel. Llevamos más de una década viviendo de acuerdo con las definiciones de estándares percibidos de Intel, por lo que es difícil de descifrar si todos asumen que no puede haber una desviación de lo que estamos acostumbrados. En este artículo, nos estamos sumergiendo en esas normas percibidas, para arrojar algo de luz sobre cómo funcionan estos procesadores.

Un poco de contexto

Desde el lanzamiento de Zen 2 y la serie Ryzen 3000, dependiendo del medio de comunicación con el que hable, ha habido un problema turbo con el nuevo hardware. Este problema de la frecuencia turbo ha estado impregnando el ecosistema desde que se lanzó Zen 2, con puntos de venta populares como Gamers Nexus señalando que en ciertos chips, la frecuencia turbo anunciada solo se logró en condiciones de enfriamiento extremas. Para otras salidas, estar dentro de los 50 MHz de la frecuencia turbo máxima se ha considerado variación de chip a chip, o una función del firmware beta inicial. Una gran variedad de personas pone diferentes cantidades de peso detrás de esto, desde la conspiración hasta no molestarse en absoluto.

Sin embargo, dados los artículos recientes de alguna prensa, así como algunos excelentes escritos de Paul Alcorn sobre Tom’s Hardware *, vimos que las supuestas definiciones públicas del rendimiento del procesador en realidad difieren de Intel a AMD. Lo que utilizamos como definiciones estándar predeterminadas, que se basan en las definiciones de Intel, no son lo mismo en AMD, lo que confunde a todos. A nadie le gusta un cambio en el status quo, e incluso con artículos que ofrecen un gran desglose de lo que está sucediendo, mucha de la base general de entusiastas todavía está tratando de ponerse al día con todos los cambios.

Esta confusión, y la discusión de la frecuencia turbo en general, se pusieron en primer plano a principios de septiembre de 2019. AMD, en un lapso de dos semanas, sucedió varias cosas esencialmente a la vez.

• El popular YouTuber der8aur realizó una encuesta pública de informes de frecuencia que tenía AMD en muy malas condiciones, con algunos usuarios a más de 200 MHz en frecuencia turbo,
• La compañía llegó a un acuerdo por $12.1 millones en una demanda sobre la comercialización de CPU Bulldozer,
• Intel hizo algunos comentarios mordaces sobre el rendimiento de AMD en una feria comercial,
• El marketing de AMD Enterprise no tiene conocimiento de cómo se interpretarían sus materiales .

Combinado con todo el drama por el que se puede conocer a la industria de la computación, y el deseo de una explicación inmediata, incluso antes de que se conozcan todos los hechos, fue una semana históricamente mala para AMD. Por supuesto, hemos informado sobre algunos de estos temas, como la demanda porque son datos interesantes para compartir. Otros que ignoramos, como (4) por no haber visto nada más que un error honesto dada la forma en que conocemos a las personas detrás de los problemas, o el hecho de que no informamos sobre (3) porque simplemente no valía la pena llamando la atención sobre ello.

Lo que ha impulsado la discusión sobre el pico turbo ha llegado a la cabeza debido a (1). La encuesta pública de Der8auer, tomada de una variedad de usuarios con diferentes chips, diferentes placas base, diferentes soluciones de enfriamiento, diferentes versiones de BIOS, todavía mostró un caso de uso en el mundo real de menos del 6% de los usuarios de 3900X pudieron lograr la frecuencia turbo anunciada de AMD. De cualquier manera que lo corte, sin contexto, ese número suena mal.

Mientras tanto, entre la salida de estos datos y la eventual respuesta de AMD, ocurrieron un par de discrepancias contextuales entre los empleados socios de AMD y los expertos en el campo a través de publicaciones en foros. Esto exacerbó en gran medida el problema, particularmente entre los miembros vocales de la comunidad. Entraremos en detalles sobre eso más adelante.

La respuesta de AMD, el 10 de septiembre , fue una nueva versión de su firmware, llamada AGESA 1003-ABBA. Esto se lanzó junto con una publicación de blog que detallaba que un problema menor de firmware que mostraba una caída de 25-50 MHz en la frecuencia turbo ahora se solucionó.

Naturalmente, eso no ayuda a los usuarios que tienen una baja de 300 MHz, pero se reduce a cuánto comprende el usuario cómo funciona el hardware de AMD. Este artículo está diseñado para arrojar algo de luz sobre la línea de tiempo aquí, así como también para entender algunos matices de la tecnología turbo de AMD, que son diferentes a lo que el público ha entendido del uso de términos específicos de Intel en la última década.

Este artículo

En este artículo cubriremos:

• La definición de Intel de Turbo
• La definición de AMD de Turbo
• ¿Por qué el Binning de AMD es diferente a Intel, en relación con Turbo y OC?
• Una línea de tiempo de los informes Ryzen 3000 Turbo de AMD
• Cómo incluso detectar frecuencias turbo
• Arreglo de AMD

Definición de Turbo, estilo Intel

Desde 2008, los procesadores x86 multinúcleo convencionales han llegado al mercado con esta noción de ‘turbo’. Turbo permite que el procesador, donde sea plausible y según las reglas de diseño, aumente su frecuencia más allá del número que se indica en la caja. Hay compensaciones, como que Turbo solo puede funcionar para un número limitado de núcleos, o un mayor consumo de energía / disminución de la eficiencia, pero en última instancia, el objetivo original de Turbo es ofrecer un mayor rendimiento dentro de las especificaciones, y solo por períodos de tiempo limitados. Con Turbo, los usuarios podrían extraer más rendimiento dentro de los límites físicos del silicio tal como se vende.

Al principio, Turbo era básico. Cuando un sistema operativo solicita un rendimiento máximo de un procesador, aumentará la frecuencia y el voltaje a lo largo de una curva dentro de los límites de potencia, corriente y térmica del procesador, o hasta que alcance alguna otra limitación, como una tabla de búsqueda de frecuencia Turbo predefinida . A medida que Turbo se vuelve más sofisticado, entran en juego otros elementos del diseño: potencia sostenida, potencia máxima, recuento de núcleos, recuento de núcleos cargados, conjunto de instrucciones y la capacidad del diseñador del sistema para permitir un mayor consumo de energía. Un objetivo loable aquí era permitir a los fabricantes de componentes la capacidad de diferenciar sus productos con una mejor entrega de energía y ajustes de firmware ajustados para brindar un mayor rendimiento.

Durante los últimos 10 años, hemos vivido con la definición de Intel de Turbo (o Turbo Boost 2.0, técnicamente) como la comprensión de facto de lo que significa Turbo. Bajo este esquema, un procesador tiene un nivel de potencia sostenido, y un nivel de potencia pico, un presupuesto de potencia, y suponiendo que el presupuesto esté disponible, el procesador pasará a una frecuencia Turbo según las instrucciones que se ejecutan y cuántos núcleos están activos. Esa frecuencia Turbo se rige por una tabla Turbo.

El Turbo que todos entendemos: Intel Turbo

Así por ejemplo. Tengo un procesador hipotético que tiene un nivel de potencia sostenido (PL1) de 100W. El nivel de potencia máxima (PL2) es de 150 W *. El presupuesto para este turbo (Tau) es de 20 segundos, o el equivalente a 1000 julios de energía (20 * (150-100)), que se repone a una velocidad de 50 julios por segundo. Esta CPU de cuatro núcleos tiene una frecuencia base de 3.0 GHz, pero ofrece un turbo de un solo núcleo de 4.0 GHz, y de 2 núcleos a 4 núcleos de 3.5 GHz.

* Intel proporciona valores PL2 ‘sugeridos’ y valores Tau ‘sugeridos’ a los fabricantes de placas base. Pero, en última instancia, los fabricantes pueden cambiarlos: Intel permite a sus socios ajustar estos valores sin romper la garantía. Intel cree que sus socios de fabricación pueden diferenciar sus sistemas con suministro de energía y otras características para permitir un valor totalmente configurable de PL2 y Tau. Intel a veces trabaja con sus socios para encontrar los mejores valores. Pero el mensaje principal sobre PL2 y Tau es que dependen del sistema. Puede leer más sobre esto en nuestra entrevista con Guy Therien de Intel .

Ahora, tenga en cuenta que una carga de trabajo, incluso una carga de trabajo de un solo hilo, puede ser ‘ligera’ o ‘pesada’. Si creara una pieza de software que era un ciclo interminable mientras (verdadero) sin operaciones, entonces la carga de trabajo sería “ligera” en el núcleo y no estresaría todas las partes del núcleo. Una carga de trabajo pesada puede involucrar funciones trigonométricas, o algún nivel de paralelismo a nivel de instrucción que haga que se ejecute más núcleo al mismo tiempo. Una carga de trabajo ‘pesada’, por lo tanto, consume más potencia, aunque todavía está contenida con un solo hilo.

Si ejecuto una carga de trabajo ligera que requiere un solo subproceso, se iniciará el procesador a 4.0 GHz. Si la potencia de ese hilo único es inferior a 100 W, no utilizaré ninguno de mi presupuesto, ya que se rellena de inmediato. Si luego cambio a una gran carga de trabajo, y el núcleo ahora consume 110W, entonces mi presupuesto de 1000 julios de turbo disminuiría en 10 julios por segundo. En efecto, obtendría 100 segundos de turbo en esta carga de trabajo, y cuando se agota el presupuesto, el nivel de potencia sostenido (PL1) se activaría y reduciría la frecuencia para garantizar que el consumo en el chip permaneciera en 100W. Mi presupuesto de energía para turbo no aumentaría, porque los 100 julios / segundo que se agregan se eliminan inmediatamente por la gran carga de trabajo. Es posible que esta frecuencia no sea la frecuencia base de 3.0 GHz; depende de las características de voltaje / potencia del chip individual. Ese valor base de 3.0 GHz es el valor que Intel garantiza en su hardware, por lo que cada uno de este procesador hipotético tendrá un mínimo de 3.0 GHz a 100W con una carga de trabajo sostenida.

Para aclarar, Intel no garantiza ninguna velocidad turbo que sea parte de la hoja de especificaciones.

Ahora, con una carga de trabajo multiproceso, ocurre lo mismo, pero es más probable que alcance el nivel de potencia pico (PL2) de 150 W, y los 1000 julios de presupuesto desaparecerán en los 20 segundos enumerados en el firmware. Si el chip, con una carga de trabajo pesada de 4 núcleos, alcanza el valor de 150 W, la frecuencia se reducirá para mantener 150 W, por lo que podríamos terminar con menos de los cuatro núcleos ‘3.5 GHz’ que figuran en la caja, a pesar de estar en turbo.

Entonces, cuando una carga de trabajo es lo que llamamos ‘ráfaga’, con períodos de trabajo pesado y liviano, el presupuesto de turbo puede rellenarse más rápido de lo que se usa en cargas de trabajo livianas, lo que permite más turbo cuando la carga de trabajo se vuelve pesada nuevamente. Esto lo hace importante cuando se compara el software uno tras otro: la primera ejecución siempre tendrá el presupuesto turbo completo, pero si las ejecuciones posteriores no permiten que el presupuesto se vuelva a llenar, puede tener menos turbo.

Como se indicó, el fabricante de la placa base puede configurar ese nivel de potencia turbo (PL2) y el tiempo de presupuesto de potencia (Tau). Vemos que en las placas base empresariales, las empresas a menudo se apegan a la configuración recomendada por Intel, pero con las placas base de overclocking de consumo, la potencia del turbo puede ser 2x-5x mayor, y el tiempo de presupuesto de energía puede ser esencialmente infinito, lo que permite que el turbo permanezca. El fabricante puede hacer esto si puede garantizar que la entrega de energía al procesador y la solución térmica sean adecuadas.

(Cabe señalar que Intel realmente utiliza un algoritmo ponderado para sus cálculos de presupuesto, en lugar de la visión simplista que he dado aquí. Eso significa que los datos de hace 2 segundos se ponderan más que los datos de hace 10 segundos al determinar cómo queda mucho presupuesto de energía. Sin embargo, cuando el tiempo de presupuesto de energía es esencialmente infinito, como la mayoría de las placas base de consumo están configuradas hoy en día, no importa de ninguna manera, dado que las CPU estarán turbo todo el tiempo).

En última instancia, Intel usa lo que se llama ‘Turbo Tables’ para gobernar la frecuencia pico para cualquier número dado de núcleos que se cargan. Estas tablas suponen que el procesador está por debajo del valor PL2 y que hay turbo presupuesto disponible. Por ejemplo, aquí están las tablas turbo de Intel para las CPU de escritorio Intel Lake 8th Generation.

Por lo tanto, Intel proporciona el nivel de potencia sostenido (PL1 o TDP), la frecuencia base (3.70 GHz para el Core i7-8700K) y un rango de frecuencias turbo basadas en la carga del núcleo, suponiendo que el fabricante de la placa base PL2 no se vea afectado. y el presupuesto de energía está disponible.

El efecto del régimen turbo de Intel y el binning de Intel

En ese momento, Intel hizo un buen trabajo al transmitir su estrategia turbo a la prensa. Ayudó a que permanecer en procesadores de cuatro núcleos durante varias generaciones significara que el consumo real de energía de turbo de estos chips de cuatro núcleos era en realidad más bajo que el valor de potencia sostenido, por lo que teníamos una falsa sensación de seguridad de que el turbo podría durar para siempre. Con el beneficio de la retrospectiva, los matices relacionados con los límites de potencia del turbo y los presupuestos de potencia se ofuscaron, y a la gente finalmente no le importó en el escritorio: todo el turbo todo el tiempo fue un concepto fácil de entender.

Otra métrica clave que quizás pasó desapercibida es cómo Intel pudo aplicar sus frecuencias turbo a la CPU.

Para cualquier CPU dada, cualquier núcleo dentro de ese diseño podría alcanzar el turbo superior. Permitía que los hilos se cargaran en cualquier núcleo que fuera necesario, sin la necesidad de microgestión del mejor posicionamiento de hilo para el mejor rendimiento. Si Intel declaró que la frecuencia turbo de un solo núcleo era de 4.6 GHz, entonces cualquier núcleo podría subir a 4.6 GHz, incluso si cada núcleo individual pudiera ir más allá de eso.

Por ejemplo, aquí hay un Core i5-9600K teórico de seis núcleos, con una frecuencia base de 3.7 GHz y una frecuencia turbo de 4.6 GHz. Los números más altos representan los máximos teóricos de cada núcleo en el voltaje de turbo.

Esta es en realidad una estrategia relacionada con la forma en que Intel segmenta sus CPU después de la fabricación, un proceso llamado binning. Si un procesador tiene las características térmicas / de potencia adecuadas para alcanzar una frecuencia dada en una potencia determinada, entonces podría etiquetarse como la CPU más adecuada para la venta minorista y venderse como tal. Debido a que Intel apuntó a un diseño monolítico homogéneo, cada núcleo del diseño se probó de manera tal que funcionó de manera igual (o casi igual) con todos los demás núcleos. Invariablemente, algunos núcleos funcionarán mejor que otros, si se ajustan a los límites, pero bajo el régimen de Intel, ayudó a Intel a distribuir las cargas de trabajo para no crear puntos calientes térmicos en el procesador, y también nivelar cualquier desgaste que pudiera ser causado. durante la vida útil del producto. También significaba que en un hipervisor, cada máquina virtual podía experimentar las mismas frecuencias máximas, independientemente de los núcleos que usaran.

Con binning, Intel (o cualquier otra compañía) está seleccionando un conjunto de voltajes y frecuencias para un procesador para el que está garantizado. Desde la fabricación, Intel (u otros) puede ver la vida útil prevista de un procesador determinado para un rango de frecuencias y voltajes, y los que alcanzan la marca correcta (según los requisitos internos) significa que un chip de silicio termina como un cierto UPC. Por ejemplo, si una pieza de silicio alcanza los voltajes y frecuencias de 9900K, pero la calificación de vida útil de esa pieza de silicio es de solo dos años, Intel podría reducirla a 9700K, lo que da una vida útil prevista de quince años. Es ese tipo de cosas que determina qué tan alto puede funcionar un chip. Obviamente, los chips que pueden alcanzar objetivos altos también se pueden reclasificar como partes más lentas en función de los niveles de inventario o la demanda.

Así es como el público en general, los entusiastas e incluso los periodistas y revisores que cubren el mercado, han visto a Turbo durante mucho tiempo. Es una parte conocida del espacio del escritorio y, en gran medida, es fácil de entender. Si alguien dijo la frecuencia ‘Turbo’, todos estaban de acuerdo en los mismos principios básicos y no se necesitaba ninguna explicación. Todos asumimos que cuando se mencionaba a Turbo, esto es lo que querían decir, y esto es lo que significaría para la eternidad.

Ahora inserte AMD, marzo de 2017, con su nueva microarquitectura de núcleo Zen. Todos asumieron que Turbo funcionaría exactamente de la misma manera. No es asi.

El Turbo de AMD

Con AMD presentando Turbo después de Intel, como ha sido a menudo el caso en su historia, han tenido que vivir en el mundo de Intel. Y esto tiene repercusiones para la empresa.

Cuando AMD presentó sus primeros procesadores habilitados para Turbo, todos en el espacio de escritorio “sabían” a qué se refería Turbo, porque nos habíamos acostumbrado a cómo Intel hacía las cosas. Para todos, decir ‘Turbo’ solo significaba una cosa: la definición de Intel de Turbo, que inconscientemente tomamos como predeterminada, y eso es todo lo que importaba. Cada vez que se lanza una familia de procesadores Intel, solicitamos las tablas Turbo, y la vida es buena y fácil.

Ingrese AMD y Zen. A pesar de que AMD dejó en claro que Turbo no funciona de la misma manera, el mensaje no fue enviado a casa. AMD tenía muchas cosas de qué hablar con el nuevo núcleo Zen, y Turbo, aunque importante, no era tan importante como la mensajería de rendimiento central. Ciertas partes de cómo se entendió el aumento del rendimiento, sin embargo, se perdieron los puntos más finos, con los usuarios (y presionando) asumiendo un arreglo similar a Intel, especialmente dado que el diseño del núcleo Zen se parece a un diseño del núcleo Intel si entrecierra los ojos.

Lo que debía llevarse a casa era la sensación de un control más fino y cómo responden los chips Ryzen y usan este control.

Cuando los usuarios miran un procesador AMD, la compañía promueve tres números: una frecuencia base, una frecuencia turbo y la potencia de diseño térmico (TDP). A veces se proporciona un turbo todo núcleo. Estos procesadores no tienen ningún tipo de tablas turbo, y AMD afirma que el diseño no está diseñado para disminuir la frecuencia (y, por lo tanto, el rendimiento) cuando detecta instrucciones que pueden causar puntos calientes.

En este punto, debe quedar claro que Zen (Ryzen 1000, Ryzen 2000) y Zen2 (Ryzen 3000) actúan de manera muy diferente cuando se trata de turbo.

Turbo en zen

En un nivel base, el turbo Zen de AMD fue solo una implementación de función escalonada, con dos núcleos que obtuvieron la mayor velocidad del turbo. Sin embargo, la mayoría de los núcleos se entregan con características que permitieron que la CPU obtenga frecuencias más altas que el turbo, dependiendo de su suministro de energía y las limitaciones de entrega actuales.

Puede recordar este gráfico del lanzamiento de Ryzen 7 1800X:

Para los procesadores Zen, AMD habilitó un incremento de multiplicador de 0.25x, que permite que la CPU salte en pasos de 25 MHz, en lugar de 100 MHz. Este bit era fácil de entender: significaba más flexibilidad en cuanto a la frecuencia que podía tener en un momento dado. AMD también anunció XFR, o ‘Rango de Frecuencia eXtreme’, lo que significa que con suficiente enfriamiento y margen de potencia, la CPU podría funcionar mejor que la frecuencia turbo nominal en la caja. Los usuarios que tenían acceso a una mejor solución de enfriamiento, o tenían temperaturas ambiente más bajas, esperarían ver mejores frecuencias y un mejor rendimiento.

Entonces, el Ryzen 7 1800X era una CPU con una frecuencia base de 3.6 GHz y una frecuencia turbo de 4.0 GHz, que se logra cuando 2 o menos núcleos están activos. Si es posible, la CPU utilizará la función de rango de frecuencia extendido (ahora depreciado en modelos posteriores) para ir más allá de 4.1 GHz si las condiciones son correctas (térmicas, potencia, corriente). Cuando hay más de dos núcleos activos, la CPU desciende a su impulso total, 3.7 GHz, y puede pasar a 3.6 GHz dependiendo de las condiciones (térmicas, potencia, corriente).

Turbo en Zen +, luego Zen2

AMD eliminó el XFR de sus materiales de marketing, vinculándolo todo con Precision Boost. En última instancia, la función de impulso del procesador se basó en tres nuevas métricas, junto con las pautas regulares de consumo de energía térmica y total:

PPT: capacidad de potencia del zócalo
TDC: capacidad sostenida de VRM
EDC: Capacidad VRM pico / transitoria

Para obtener las frecuencias de turbo más altas, los usuarios tendrían que obtener una gran puntuación en las tres métricas, así como en el enfriamiento, para evitar que uno sea un cuello de botella. El resultado final prometido por AMD fue una curva agresiva de voltaje / frecuencia que superaría el límite del hardware, hasta el TDP que figura en la caja.

Esto significa que vimos un algoritmo de turbo boost mucho más estricto en comparación con Zen. Tanto Zen + como Zen2 se trasladaron a este algoritmo de impulso que fue diseñado para ofrecer muchas más oportunidades de frecuencia en cargas de trabajo mixtas. Esto se conocía como Precision Boost 2.

En este algoritmo, vimos más que una simple función de paso más allá de dos hilos, y dependiendo del rendimiento específico del chip, así como del entorno en el que se encontraba el chip, la curva no lineal reaccionaría a las condiciones y la carga de trabajo para igualar Consumo total de energía del chip como se indica. El beneficio de esto fue un mayor rendimiento en cargas de trabajo mixtas, a cambio de un algoritmo de frecuencia y consumo de energía más estricto.

Avance a Zen2, y una de las mayores diferencias para Zen2 es cómo se agrupan las CPU. Desde Zen, el propio software Ryzen Master de AMD había enumerado los ‘mejores núcleos’ para cada chip: para cada CPU Ryzen, le diría al usuario qué núcleos habían funcionado mejor en base a pruebas internas, y se pronosticaba que tendrían esta mejor curva de frecuencia de voltaje. AMD llevó esto un paso más allá, y con el nuevo proceso de 7 nm, para obtener las mejores frecuencias de cada chip, realizaría binning por núcleo, y solo se necesitaba un núcleo para alcanzar la velocidad turbo nominal.

Entonces, por ejemplo, aquí hay un Ryzen 5 3600X de seis núcleos, con una frecuencia base de 3.8 GHz y una frecuencia turbo de 4.4 GHz. Al agruparse estrechamente a los máximos de silicio (para un voltaje dado), AMD pudo extraer más rendimiento en núcleos específicos. Si AMD hubiera seguido la estrategia de agrupamiento de Intel relacionada con el turbo aquí, veríamos un chip que solo tendría un turbo máximo de 4.2 GHz o 4.1 GHz; al acercarse a los límites del chip para el voltaje dado, se podría decir que AMD ofrece más funcionalidad de turbo y, en última instancia, Rendimiento más inmediato.

Sin embargo, hay una cosa a tener en cuenta aquí, que era el punto del artículo de Paul. Para lograr el máximo rendimiento en una carga de trabajo determinada, AMD tuvo que ajustar el planificador de CPPC de Windows para asignar una carga de trabajo al mejor núcleo. Al identificar los mejores núcleos en un chip, significaba que cuando una sola carga de trabajo roscada necesitaba la mejor velocidad, podía asignarse al mejor núcleo (en nuestro chip teórico anterior sería Core 2).

Tenga en cuenta que con una estrategia de binning de Intel, ya que el binning no llega a los límites por núcleo, sino que depende de los límites por chip, no importa a qué núcleo se asigne el trabajo: este es el beneficio de un turbo homogéneo diseño de agrupamiento y, en última instancia, hace que el algoritmo del planificador en el sistema operativo sea muy simple. Con la solución de AMD, ese único núcleo mejor es la frecuencia programada que funciona, y como tal, la pila de software en su lugar necesita conocer el funcionamiento de la CPU y cómo asignar trabajo a ese núcleo específico.

¿Esto hace alguna diferencia para el usuario casual? No. Para cualquiera que simplemente continúe con sus actividades diarias, la diferencia es absolutamente nula. Si bien la plataforma expone los mejores núcleos, debe poder usar herramientas para verla, y a menos que desinstale la pila de controladores o la microgestión donde se asignan los hilos, realmente no puede modificarla. Para usuarios ocasionales y para jugadores, no hay diferencia en su flujo de trabajo.

Sin embargo, esta estrategia de binning afecta a los overclockers casuales que buscan obtener más frecuencia; según el binning de AMD, no hay mucho margen de maniobra. Los overclocks de núcleo completo realmente no funcionan en este escenario, porque el chip ya está muy cerca de la curva de voltaje / frecuencia. Es por eso que no vemos grandes overclocks de núcleo completo en la mayoría de las CPU de la serie Ryzen 3000. Para obtener los mejores overclocks generales del sistema esta vez, los usuarios tendrán que jugar con cada núcleo uno por uno, lo que hace que todo el proceso lleve mucho tiempo.

Una pequeña nota sobre Precision Boost Overdrive (PBO) aquí. AMD introdujo PBO en Zen y Zen +, y dada la estrategia de agrupamiento en esos chips, junto con el proceso maduro de 14/12 nm, los usuarios con el entorno térmico adecuado y las placas base adecuadas podrían extraer otros 100-200 MHz del chip sin hacer mucho más que pulsando un interruptor en el software Ryzen Master. Debido a la nueva estrategia de agrupamiento, y a pesar de lo que ha dicho parte del material de marketing mal ejecutado de AMD, PBO no ha tenido el mismo efecto y los usuarios ven poco o ningún beneficio. Esto no se debe a que PBO esté fallando, es porque la CPU ya está cerca de sus límites máximos, y las métricas de AMD desde el estado de fabricación indican que la CPU tiene una vida útil con la que AMD está feliz a pesar de estar cerca de los límites de silicio. Termina siendo un beneficio mutuo, aunque las personas que desean un mayor rendimiento del overclocking no lo obtendrán, porque ya tienen uno de los mejores resultados que ofrece esa pieza de silicio.

El otro punto de asignar cargas de trabajo a un núcleo específico gira en torno a la vida útil. Por lo general, con el tiempo, el silicio es propenso a la electromigración, donde los electrones a lo largo del tiempo ajustarán lentamente la posición de los átomos de silicio dentro del chip. El ajuste del posicionamiento del átomo generalmente conduce a rutas de mayor resistencia, que requieren más voltaje con el tiempo para conducir la misma frecuencia, pero que también conduce a más electromigración. Es un círculo vicioso.

Con la electromigración, hay dos soluciones. Una es establecer la frecuencia y el voltaje del procesador lo suficientemente bajo como para que durante la edad esperada de la CPU nunca se convierta en un problema, ya que sucede a una velocidad tan lenta; alternativamente, configure el voltaje lo suficientemente alto como para que no convertirse en un problema a lo largo de la vida. La segunda solución es monitorear el efecto de la electromigración a medida que el núcleo se usa durante meses y años, luego ajustar el voltaje hacia arriba para compensar. Esto requiere un mayor nivel de detección y gestión dentro de la CPU, y podría decirse que es un problema más difícil.

Lo que AMD hace en Ryzen 3000 es la segunda solución. La primera solución da como resultado un rendimiento inferior al ideal, por lo que la segunda solución permite que AMD supere los límites de voltaje / frecuencia de un núcleo dado. El resultado de esto es que AMD también sabe (a través de los informes de TSMC) cuánto tiempo se espera que dure cada chip o cada núcleo, y los resultados en sus ojos son muy positivos, incluso con un solo núcleo obteniendo la mayor parte del tráfico. Para los usuarios que están preocupados por esto, la pregunta es, ¿confía en AMD?

Además, para señalar, Intel podría usar este método de agrupamiento por núcleo. No hay nada que los detenga. Todo depende de qué tan cómoda esté la compañía con su proceso de fabricación alineado con la longevidad esperada. Hasta cierto punto, Intel ya hace esto con sus procesadores Turbo Boost Max 3.0, dado que especifican núcleos específicos para ir más allá de la frecuencia Turbo Boost 2.0, y estos núcleos obtienen todos los programas prioritarios para ejecutarse a una frecuencia más alta y lo harían experimenta las mismas preocupaciones de electromigración que los usuarios pueden tener al ejecutar el núcleo prioritario con más frecuencia. La diferencia entre las dos compañías es que AMD esencialmente ha aplicado esta idea en todo el chip y a través de su paquete de productos, mientras que Intel no lo ha hecho, dejando potencialmente el rendimiento listo para usar en la mesa.

Un pequeño desvío en las CPU móviles

Para nuestros lectores que se centran exclusivamente en el espacio del escritorio, quiero profundizar un poco en lo que sucede con los SoC móviles y cómo el turbo entra en vigencia allí.

La mayoría de los SoC basados ​​en Arm usan un mecanismo llamado EAS (Programación con conocimiento de energía) para administrar cómo implementa ambos turbo pero también qué núcleos están activos dentro de una CPU móvil. Una CPU móvil tiene otro aspecto con el que lidiar: no todos los núcleos son iguales. Una CPU móvil tiene núcleos de baja potencia / bajo rendimiento y núcleos de alta potencia / alto rendimiento. Idealmente, los núcleos deben tener un punto de cruce en el que tenga sentido mover la carga de trabajo a los núcleos grandes y gastar más energía para hacerlos más rápido. Una carga de trabajo en este caso a menudo comenzará en los núcleos más pequeños de bajo rendimiento hasta que alcance un umbral de utilización y luego se traslade a un núcleo grande, en caso de que haya uno disponible.

Por ejemplo, aquí está el Exynos 9820 de Samsung, que tiene tres tipos de núcleos: A55, A75 y M4. Cada núcleo está configurado para una ventana de rendimiento / potencia diferente, con cierta superposición.

Peak Turbo en estas CPU se define de la misma manera que Intel en sus procesadores de escritorio, pero sin las tablas Turbo. Tanto las CPU pequeñas como las grandes tendrán frecuencias inactivas y máximas definidas, pero se ajustarán a una curva de voltaje / frecuencia definida de chip a chip con puntos a lo largo de esa curva. Cuando la utilización de un núcleo grande es alta, el sistema reaccionará y le ofrecerá el voltaje / frecuencia más alto en esa curva como sea posible. Esto significa que las cargas de trabajo más fuertes obtienen la frecuencia más fuerte.

Sin embargo, en Energy Aware Scheduling, debido a que los dispositivos en los que entran estos chips son pequeños y a menudo tienen limitaciones térmicas, la energía puede verse limitada por la batería o las térmicas. No tiene sentido que el chip permanezca a la frecuencia máxima solo para quemarse en la mano. Por lo tanto, el sistema aplicará un algoritmo Energy Aware, combinado con las sondas térmicas dentro del dispositivo, para garantizar que el turbo y la carga de trabajo tienden a alcanzar una temperatura máxima de la piel del dispositivo (suponiendo una carga de trabajo constante y pesada). Esta potencia se equilibra en la CPU, la GPU y cualquier acelerador adicional dentro del sistema, y ​​el fabricante del dispositivo puede configurar la proporción de ese equilibrio para responder a la proporción de instrucciones de CPU / GPU / NPU que se alimentan al chip .

Como resultado, cuando vemos un procesador móvil que anuncia ‘2.96 GHz’, probablemente alcanzará esa frecuencia, pero el diseño del dispositivo (y la agrupación del chip) determinará cuánto tiempo antes de que entren en vigor los límites térmicos.

¿Los fabricantes garantizan las frecuencias turbo?

La pregunta: ¿los fabricantes garantizan las frecuencias turbo? Parece que tiene una respuesta obvia para mucha gente. Realicé una encuesta en mi twitter privado, y los resultados de la votación (más de 700) fueron asombrosos.

Probar el conocimiento de mi audiencia. ¿La frecuencia turbo de la CPU en un procesador de escritorio está garantizada por el fabricante? ¿Si o no? [ENCUESTA]
– Dr. Ian Cutress (@IanCutress) 12 de septiembre de 2019

El 31% de las personas dijo que , el 69% de las personas dijo que no.

Y la respuesta correcta es No, el Turbo nunca está garantizado.

Para aclarar, necesitamos definir garantía:

Una garantía formal de que se cumplirán ciertas condiciones, si pertenecen a un producto, entonces ese producto será reparado o reemplazado si no es de la calidad especificada“.

Esto significa que bajo una garantía, el fabricante estaría preparado para reparar o reemplazar el producto si no cumplía con esa garantía. Según esa definición, Turbo no está bajo ninguna garantía del fabricante y no está cubierto por la garantía.

Tanto AMD como Intel garantizan cuatro cosas con su hardware: recuentos de núcleos, frecuencia base, consumo máximo de energía a esa frecuencia base (en esencia, el TDP, aunque estrictamente hablando TDP no es una medida del consumo de energía, pero es aproximado) y el período de tiempo durante el cual se garantiza que esos otros elementos funcionarán (generalmente tres años en la mayoría de las ubicaciones). Si compra una CPU de 6 núcleos y solo funcionan cuatro núcleos, puede reemplazarla. Si esa CPU de seis núcleos no alcanza la frecuencia base en operaciones estándar (estándar se define como Intel y AMD aquí, generalmente con un refrigerador de serie, pasta nueva, un chasis limpio con flujo de aire activo de una velocidad mínima y una temperatura ambiente dada) , entonces puedes reemplazarlo.

Turbo, en este caso, es aspiracional. Normalmente hablamos de cosas como ‘una frecuencia Turbo de 4.4 GHz’, cuando técnicamente deberíamos decir ‘frecuencia Turbo de hasta 4.4 GHz’. La parte ‘hasta’ es tan importante como el resto, y la prensa (incluido yo) es culpable de no mencionar el hecho con más frecuencia. Tanto Intel como AMD afirman que sus procesadores en condiciones normales deberían alcanzar la frecuencia turbo, y ambas compañías promueven activamente herramientas de mejora de frecuencia como modos de potencia agresivos o mejores perfiles turbo, pero de ninguna manera se garantiza esto.

Sí, apesta (ese es el término técnico). Ambas compañías comercializan sus frecuencias turbo en voz alta, orgullosa y, a veces, erróneamente. Decir que algo es el procesador ‘primer X GHz’ solo significa algo si realmente puedes llegar a una posición donde esa frecuencia esté garantizada. Los minoristas sin escrúpulos incluso ponen la frecuencia turbo como lo más destacado en su material de marketing. Tratar de explicarle al usuario casual que esta frecuencia turbo, este valor que está en todas partes, en realidad no está cubierto por la garantía, no es una buena manera de alentarlos a obtener un procesador.

Problema Turbo de AMD (abreviado)

Entonces, ¿por qué todo esto habla de cómo cada empresa hace su funcionalidad Turbo, así como su estrategia de agrupamiento? Preparé esta historia con las diferencias porque mucha de nuestra base de usuarios todavía piensa en términos de la forma en que Intel hace las cosas. Ahora que AMD está en el juego y está marcando su propio camino, es importante comprender la estrategia de AMD en el contexto de los productos que salen.

Con eso en mente, cubramos las noticias recientes de AMD.

Desde el lanzamiento de las CPU Zen 2 y la serie Ryzen 3000, AMD ha hecho su habitual anuncio de conteo de núcleos, frecuencia base, TDP y frecuencias turbo. Lo que ha ocurrido desde las revisiones iniciales del día de lanzamiento y a través de la disponibilidad pública ha sido que grupos de usuarios entusiastas, que buscan aprovechar al máximo su nuevo hardware brillante, han informado que sus procesadores no están alcanzando las frecuencias turbo.

Si un procesador tenía una frecuencia turbo de 4.4 GHz garantizada, los usuarios se quejaban de que sus frecuencias turbo máximas observadas eran de 25-100 MHz menos, o en algunos casos más de 100 MHz menos de lo anunciado. Este tipo de caída en la frecuencia se informó aproximadamente a través del ecosistema, pero nadie actuó en particular hasta estas últimas semanas, casi al mismo tiempo que AMD tenía varias otras noticias.

Múltiples salidas, como Hardware Unboxed , notaron que las frecuencias que estaban viendo dependían significativamente de la placa base utilizada. Hardware Unboxed probó 14 placas base AMD AM4 diferentes (algunas X570, otras no X570) con un Ryzen 7 3800X, esperando una frecuencia turbo máxima durante Cinebench R20 de 4.5 GHz. Solo una placa base era consistente en la mayoría de las CPU, mientras que algunas otras eran impredecibles.

Obviamente, esto juega con algún razonamiento de que el turbo depende de la placa base, todo lo demás es igual. Cabe señalar que no hay garantía de que todas estas placas base, a pesar de estar en las últimas BIOS, tengan las últimas versiones de firmware de AMD.

Otra salida, Gamers Nexus , también observó que podían garantizar que una CPU alcanzaría sus velocidades turbo nominales cuando el sistema estaba bajo algún tipo de frío, ya sea agua fría o un entorno de enfriamiento bajo cero. Esto finalmente llevaría a algunos a creer que esto se relaciona con un problema de capacidad térmica dentro de la placa base, la CPU o la entrega de energía.

El Stilt, un usuario popular comúnmente asociado con el hardware de AMD y sus debilidades, publicó el 8/12 que AMD había reducido su valor de temperatura máxima para las CPU Ryzen 3000 y había introducido un valor de temperatura media para ayudar a guiar el turbo. Estos valores serían parte de la SMU, o Unidad de Administración del Sistema, que ayuda a controlar la funcionalidad del turbo.

Peter Tan, alias Shamino, un overclocker de renombre mundial (retirado) e ingeniero senior de la división de placas base de ASUS, reconoció el problema en una publicación del foro el 22/8 con su propia opinión sobre el asunto. Afirmó que el desembolso inicial de AMD con su comportamiento de turbo boost fue en última instancia demasiado agresivo, y para garantizar la longevidad del chip, el comportamiento de impulso estuvo en línea con lo que AMD necesitaba para lograr esa longevidad.

Debe señalarse aquí que Shamino está hablando aquí a título personal.

Para aquellos que no están grabados en las minutas de la vida del foro, la flecha más grande a este tema provino de Roman Hartung o Der8auer, a través de su canal de YouTube . Solicitó la ayuda de su audiencia para tabular qué frecuencias estaban obteniendo los usuarios.

En la encuesta, se solicitaron los siguientes detalles:

• CPU
• tarjeta madre
• Versión AGESA / versión BIOS
• PBO deshabilitado
• Enfriamiento por Aire

Obviamente, cuando se anunció que esta encuesta iba a suceder, Roman y AMD discutieron detrás de escena los pros y los contras de esta encuesta. Como era de esperar, AMD tenía algunas reservas de que esta encuesta sería de alguna manera justa: es lo más poco científica posible. Naturalmente, Roman argumentó que estos serían resultados del mundo real con máquinas de usuarios, en lugar de resultados en el laboratorio, y AMD debería garantizar a los usuarios en sus máquinas domésticas con valores de frecuencia específicos. AMD también señaló que con este tipo de encuesta, tiene un sesgo de selección inherente: los usuarios que se sienten afectados negativamente por cualquier problema (por culpa de AMD o de los propios usuarios) tienen más probabilidades de responder que aquellos que están contentos con el rendimiento. Roman estuvo de acuerdo en que esto sería una preocupación, pero aún destacó el hecho de que los usuarios no deberían tener estos problemas en primer lugar. AMD también mencionó que la versión de Windows no se podía controlar, a lo que Roman argumentó que si el turbo solo es válido para una determinada versión de Windows, entonces no es justo promocionarlo, sin embargo admitió que el mejor rendimiento fue la última versión de Windows 10, y los usuarios de Windows 7 deberán aceptar algún nivel de rendimiento reducido.

Roman y AMD al menos acordaron un escenario de prueba para estandarizar los informes. Con base en las recomendaciones de AMD, Roman solicitó a su audiencia que usaran CineBench R15 como una carga única y HWiNFO como la herramienta de informes, establecida en un intervalo de sondeo de 500 milisegundos (0.5 segundos), con la frecuencia máxima de la CPU en la lista.

La encuesta terminó con ~ 3300 envíos válidos, que Roman verificó uno por uno para asegurarse de que todos los datos estaban presentes, las capturas de pantalla mostraron los valores correctos y eliminó los puntos de datos que no pasaron las condiciones de prueba (como PBO habilitado). Los resultados se explican en el video de Roman y vale la pena ver el video. He resumido los datos para cada CPU aquí.

He corregido un par de cálculos de Roman basados ​​en los datos del video, pero fueron cambios menores.

Para cada CPU, tenemos la frecuencia turbo indicada, la frecuencia turbo promedio de la encuesta y la frecuencia modal de la CPU (es decir, la frecuencia más frecuentemente reportada). Más allá de esto, el número de usuarios que informaron una frecuencia igual a la frecuencia turbo o superior se muestra como un porcentaje.

En el aspecto positivo, la frecuencia de CPU informada modal para casi todos los chips (excepto el 3900X) es relativamente cercana, lo que muestra que la mayoría de los usuarios están dentro de los 25-50 MHz de la frecuencia turbo pico anunciada. La desventaja es que el número real de usuarios que logran el turbo nominal es bastante bajo. Aparte del Ryzen 5 3600, que es del 50%, todas las otras CPU luchan por ver las velocidades turbo nominales en la caja.

Como se puede imaginar, estos datos causaron un gran revuelo en la comunidad, y varios usuarios vocales que habían invertido mucho dinero ganado en sus sistemas estaban muy frustrados porque no estaban viendo los números que prometía la caja.

Antes de cubrir la respuesta de AMD, quiero hablar sobre las herramientas de monitoreo de frecuencia, tiempos de turbo y los problemas inherentes con el efecto observador. También está la cuestión de cuánto tiempo necesita turbo estar activo para que cuente (o incluso se registre en el software).

Detección de Turbo: microsegundos frente a milisegundos

Uno de los mayores problemas con la obtención de datos de frecuencia es el proceso real de monitoreo. Si bien hay algunos comandos básicos del sistema operativo para obtener la frecuencia, no es tan simple como leer un número.

Cómo leer una frecuencia

Como desembolso, tenemos que diferenciar entre la frecuencia de un procesador y la frecuencia de un núcleo. En los procesadores de PC modernos, cada núcleo puede actuar independientemente uno del otro en términos de frecuencia y voltaje, por lo que cada núcleo puede informar diferentes números. Para leer el valor de cada núcleo, ese núcleo tiene que ser dirigido usando una máscara de afinidad que une la lectura a un núcleo particular. Si una simple solicitud de “cuál es la frecuencia” se envía a un procesador sin una máscara de afinidad, devolverá el valor del núcleo al que ese hilo termina siendo asignado. Por lo general, este es el núcleo más rápido, pero si ya se está trabajando en un chip, ese hilo podría terminar en un núcleo inactivo. Si se realiza una solicitud para averiguar ‘cuál es la frecuencia actual del procesador’, los usuarios podrían terminar con una serie de valores: la frecuencia en un núcleo específico, la frecuencia del núcleo más rápido o una frecuencia promedio de todos los núcleos Para agregar más confusión al asunto, si se tiene en cuenta la carga en un núcleo, dependiendo de la forma en que se realiza la solicitud, un núcleo que se ejecuta a una carga del ‘50% ‘en la frecuencia máxima podría terminar devolviendo un valor de media frecuencia.

Hay una multitud de programas que informan la frecuencia. Varios de los más populares incluyen:

• CPU-Z
• HWiNFO
• Intel XTU
• Intel Power Gadget
• Ryzen Master
• AIDA64

Algunos de estos usan métodos similares para acceder a los valores de frecuencia, otros tienen métodos más complejos, y luego el informe y el registro de cada valor de frecuencia pueden tener diferentes efectos en el sistema que se está probando.

Le pregunté a uno de los principales desarrolladores de estas herramientas de monitoreo cómo detectan la frecuencia de un núcleo. Me dieron una breve descripción: no es tan simple como resulta.

1-Conozca el BCLK (~ 100 MHz) con precisión. Normalmente esto se hace midiendo el reloj APIC, pero en los sistemas modernos que usan referencias de reloj interno (Win 10 1803+) esto causa un ancho de banda de interrupción adicional, y muy a menudo este valor se sondea raramente y se almacena en caché.
2-Detecte el multiplicador de CPU Core leyendo un único registro específico de modelo basado en la CPU. Esto debe hacerse en modo kernel, por lo que hay una sobrecarga adicional que cambia del modo de usuario al modo kernel y viceversa.
3-Esto tiene que repetirse para cada núcleo mediante el uso de una máscara de afinidad, utilizando una llamada API Win32 estándar de SetCurrentThreadAffinityMask. Como se trata de una llamada a la API, nuevamente hay una sobrecarga adicional.

Entonces, la frecuencia de un solo núcleo aquí se mide mediante el reloj base / BCLK y multiplicándolo por el multiplicador de núcleo como se define en los registros para ese núcleo, todo a través de una máscara de afinidad. Por lo general, BCLK es el mismo en todos los núcleos, pero incluso eso tiene algunas variaciones y fluctuaciones con el tiempo, por lo que dependerá de la frecuencia con la que solicite esos datos.

Otro método alternativo es aplicar una carga simple: una matriz conocida de instrucciones consistentes y medir el número de ciclos / tiempo que se tarda en calcular esa pequeña matriz. Algunos podrían considerar que este método es más preciso, pero aún requiere que se coloque la máscara de afinidad apropiada y, de hecho, aplica una carga adicional al sistema, lo que podría causar lecturas erróneas.

¿Qué tan rápido puede ocurrir el Turbo?

Los procesadores modernos suelen utilizar Turbo de 4 GHz a 5 GHz, o de cuatro a cinco mil millones de ciclos por segundo. Eso significa que cada ciclo a 5 GHz es igual a 0.2 nanosegundos, o 0.2 x 10 -9 segundos. Estos procesadores no permanecen a esa frecuencia: ajustan la frecuencia hacia arriba o hacia abajo según las solicitudes de carga, lo que ayuda a administrar la energía y el calor. La rapidez con que un procesador puede responder a estas solicitudes de una frecuencia más alta se ha convertido en un campo de batalla en los últimos años.

La forma en que un procesador gestiona su frecuencia se reduce a cómo interactúa con el sistema operativo. En un mundo anterior a Skylake, un procesador tendría varios estados de potencia ACPI predefinidos, relacionados con el rendimiento (P), el Dispositivo (D) y el procesador (C), en función de si el procesador estaba encendido, en reposo, o necesitaba alta frecuencia. Los estados P dependían de una escala de frecuencia de voltaje, y el sistema operativo podía controlar P0 a P1 a P2 y más allá, siendo P1 la frecuencia base garantizada y cualquier número P mayor controlado por el sistema operativo. El sistema operativo podría solicitar P0, lo que permitió que el procesador entrara en modo de refuerzo. Todo esto pasaría por un conjunto de controladores del sistema operativo relacionados con el control de potencia y frecuencia; Esto se conoció como SpeedStep para Intel y Cool’n’Quiet para AMD.

Como se define en las especificaciones de ACPI, con la introducción del control UEFI vino CPPC, o Collaborative Processor Performance Control. Al requerir la CPU y el sistema operativo, con Skylake vimos que Intel y Microsoft introdujeron una nueva característica de ‘Cambio de velocidad’ que puso el control de los modos de frecuencia del procesador nuevamente en manos del procesador: la CPU podría responder directamente a la densidad de instrucciones que se aproxima en el núcleo y modificar la frecuencia directamente sin comandos adicionales. El resultado final de CPPC y Speed ​​Shift para Intel fue un mecanismo de respuesta de frecuencia mucho más rápido.

Con Speed ​​Shift en Skylake, en Windows, Intel estaba promoviendo que antes de Speed ​​Shift cambiaran la frecuencia en cualquier lugar hasta 100 milisegundos (0.1 s) después de que se hizo la solicitud. Con Speed ​​Shift, eso se redujo a la marca de 35 milisegundos, alrededor de una mejora del 50-66%. Con las actualizaciones posteriores de la arquitectura Skylake y la pila de controladores, Intel afirma que esto ha mejorado aún más.

Los usuarios pueden detectar para ver si CPPC está habilitado en su sistema Intel con mucha facilidad. Al ir al Visor de eventos, seleccionar Registros de ventana -> Sistema, y ​​luego ir a la marca de tiempo donde se reinició la máquina por última vez, podemos ver el CPPC de ACPI en la lista de la fuente Kernel-Processor-Power.

Para mi CPU Core i7-8565U Whiskey Lake, muestra que APCI CPPC está habilitado, y que mi CPU Core 5 está funcionando a una base de 2.0 GHz con un turbo pico de 230%, o 4.6 GHz, que se relaciona con la frecuencia turbo de un solo núcleo de mi procesador

Para AMD, con Zen 2, la compañía anunció el uso de CPPC2 en colaboración con Microsoft. Esto es CPPC pero con algunos ajustes adicionales adicionales a la pila de controladores para cuando se detecta un procesador AMD.

Aquí AMD afirma que pueden cambiar la frecuencia, cuando usan la actualización de Windows 10 de mayo de 2019 o más reciente, en la escala de 1-2 ms, en comparación con 30 ms con la interfaz CPPC estándar. Esto se reduce a cómo AMD ha implementado su modelo ‘CPPC2’, con una serie de controladores de cuñas para ayudar a acelerar el proceso. Si volvemos a cómo podemos detectar ese modo CPPC similar a Intel, vemos una sutil diferencia:


Ryzen 7 3700X

Observe aquí que no dice CPPC2, solo CPPC. Lo que sí muestra es la frecuencia base de 3600 MHz de nuestro 3700X, y un porcentaje de rendimiento máximo del 145%, lo que haría que el turbo máximo de este procesador esté cerca de 5220 MHz. Claramente, ese no es el turbo máximo de esta CPU (que sería 4400 MHz), lo que significa que AMD está utilizando este valor artificialmente alto combinado con sus actualizaciones de controladores CPPC para ayudar a impulsar un tiempo de respuesta de frecuencia más rápido.

El efecto observador

Dependiendo del software que se utilice y de la forma en que calcula la frecuencia actual de cualquier núcleo / procesador dado, podríamos terminar cargando artificialmente el sistema, porque como se explicó anteriormente, no es tan simple como simplemente leer un número: los cálculos adicionales tienen que se deben hacer o las llamadas a la API tienen que ser conducidas. Cuanto más frecuentemente el usuario intente detectar la frecuencia, más carga artificial se genera en el núcleo, y en algún momento el sistema detectará que esto requiere una frecuencia diferente, haciendo que las lecturas cambien.

Esto se llama efecto observador. Y es bastante fácil verlo en acción.

Para cualquier herramienta que permita al usuario cambiar la frecuencia de sondeo, ya que el usuario cambia esa frecuencia de una vez por segundo a diez veces por segundo, luego 100 veces por segundo, o 1000 veces por segundo, incluso en un sistema completamente inactivo, algunos picos se dibujará, más si los resultados se registran en la memoria o en un archivo de datos.

Ahí radica la muleta de los informes de frecuencia. Finalmente, necesitamos que la frecuencia de sondeo sea lo suficientemente rápida como para capturar todos los diferentes cambios de frecuencia, pero no queremos que interfiera con la medición. Combinado con CPPC, esto puede hacer que la detección de ciertas frecuencias pico sea particularmente molesta.

Volvamos a nuestras escalas de tiempo para obtener instrucciones y cambios de frecuencia. A 4 GHz, podemos desglosar lo siguiente:

Tenga en cuenta que un cambio de frecuencia es equivalente a perder alrededor de 800,000 ciclos a 4 GHz, por lo que la CPU tiene que medir hasta qué punto vale la pena el cambio de frecuencia en función de las instrucciones que fluyen hacia el núcleo.

Pero lo que esto dice es una de las fallas inherentes en el monitoreo de frecuencia: si una CPU puede cambiar la frecuencia tan rápido como cada 1-2 ms, pero solo podemos sondear alrededor de 50-100 ms, entonces podemos perder algunos valores turbo. Si un procesador dispara rápidamente hasta un turbo pico, procesa algunas instrucciones y luego cae casi inmediatamente debido a que no se cumplen los requisitos de potencia / frecuencia para el flujo de instrucciones entrantes, el software de sondeo de frecuencia nunca lo verá. Si se cumplen los requisitos, por supuesto, entonces vemos la frecuencia turbo: el valor que terminamos viendo es el que el sistema considera más adecuado a largo plazo.

Con un intento de tiempo de sondeo inferior a 1 ms, podemos ver esto en efecto. La línea azul muestra el procesador Ryzen en una configuración de potencia equilibrada, y a alrededor de 3,6 milisegundos, el 3700X salta a 4350-4400 MHz, rebotando entre los dos. Pero en 4.6 milisegundos, ya hemos saltado a 4.3 GHz, luego a 5.2 milisegundos estamos a 4.2 GHz.

Pudimos obtener estos datos usando el Subsistema de Windows para Linux, usando una cadena de dependencia de adiciones de la cual derivamos la frecuencia basada en el rendimiento. Aquí no hay ningún efecto de observación porque es la carga de trabajo, no algo que se puede hacer cuando se usa una carga de trabajo externa. Nos da una resolución de alrededor de 40 microsegundos, y se basa en que el programador asigne automáticamente el hilo al mejor núcleo.

Pero en pocas palabras, a menos que un usuario realice un sondeo tan rápido, el usuario no verá los picos momentáneos en la frecuencia turbo si está en el límite de soportarlo. La desventaja de esto es que el sondeo tan rápido pone una carga artificial en el sistema, y ​​significa que cualquier punto de referencia concurrente será inadecuado.

(Para los usuarios que se preguntan cuál es esa línea naranja, ese sería el procesador en ‘modo de rendimiento’, que ofrece una mayor tolerancia al turbo).

Todo lleva a una pregunta: si un núcleo golpea una frecuencia turbo pero no puede detectarlo, ¿eso cuenta?

En última instancia, al optar por una estrategia de agrupamiento más agresiva tan cercana a los límites de silicio, AMD ha llegado a un punto en el que, dependiendo de la carga de trabajo y el entorno, una CPU de escritorio solo puede mantener momentáneamente un Turbo Bins superior. Al igual que Turbo, esto no es algo malo, ya que extrae más rendimiento de sus procesadores que de lo contrario quedarían en la mesa con velocidades de reloj más bajas. Pero en comparación con los procesadores de Intel y a lo que estamos acostumbrados, estos bins más altos requieren más administración de la plataforma para garantizar que el procesador alcance su máximo potencial.

AMD encontró un problema, para +25-50 MHz

Por supuesto, con el conjunto de datos de Roman llegando a Internet con sus resultados, varios medios informaron al respecto y mucha gente estaba en una situación irregular. No pasó mucho tiempo para que AMD tuviera una respuesta, emitida en forma de publicación de blog . Voy a tomar partes de lo que es relevante, comenzando con el reconocimiento de que efectivamente se encontró una falla:

Como notamos en este blog, también resolvimos un problema en nuestro BIOS que estaba reduciendo la frecuencia máxima de impulso en 25-50MHz dependiendo de la carga de trabajo. Esperamos que nuestros socios de la placa base hagan que esta actualización esté disponible como un parche en dos o tres semanas. Después de la instalación de la última actualización del BIOS, un consumidor que ejecuta una aplicación de subproceso único en una PC con las últimas actualizaciones de software y un voltaje adecuado y un margen térmico adecuado debería ver la frecuencia de impulso máxima de su procesador.

AMD reconoció que habían encontrado un error en su firmware que estaba reduciendo la frecuencia máxima de impulso de sus CPU en 25-50 MHz. Si tomamos la encuesta de datos de Roman, agregar 50 MHz a cada valor empujaría todos los promedios y valores modales para cada CPU por encima de la frecuencia turbo. No necesariamente ayudaría a los usuarios que informaban frecuencias más bajas de 200-300 MHz, a lo que AMD tenía una respuesta allí:

Lograr esta frecuencia de impulso máxima, y ​​la duración del tiempo que el procesador permanece en esta frecuencia de impulso máxima, variará de una PC a otra en función de muchos factores, como tener un voltaje y una altura libre de corriente adecuados, la temperatura ambiente, la instalación de la más alta software de fecha y BIOS, y especialmente la aplicación de pasta térmica y la efectividad de la solución de enfriamiento del sistema / procesador.

Como dijimos en la sección AMD Turbo de esta pieza, la forma en que AMD implementa su turbo es diferente, y controla cosas como la entrega de potencia, el voltaje y el margen de corriente, y ajustará el voltaje / frecuencia según la plataforma en uso. AMD está reiterando esto, ya que esperaba que tuvieran que hacerlo.

AMD en la publicación del blog mencionó cómo había cambiado su firmware (1003AB) en agosto por razones de estabilidad del sistema, negando categóricamente que fuera por razones de longevidad de la CPU, diciendo que el último firmware (1003ABBA) mejora el rendimiento y tampoco afecta la longevidad.

La forma en que AMD distribuye su firmware es a través de AGESA (Arquitectura de software encapsulado genérico de AMD). El AGESA es esencialmente un conjunto base de firmware y archivos de biblioteca que se distribuyen a los proveedores de placas base que luego aplican sus propias interfaces UEFI en la parte superior. AGESA también puede incluir actualizaciones para otras partes del sistema, como la Unidad de administración del sistema, que tienen su propio firmware relacionado con su funcionamiento. Esto puede hacer que la actualización de las cosas sea un poco molesta: se sabe que los proveedores de placas base mezclan y combinan diferentes versiones de firmware, porque al final del día el usuario termina con ‘BIOS F9’ o algo similar.

El último AGESA de AMD en el momento de la redacción de este documento es 1003ABBA, que actualmente se encuentra en los proveedores de placas base. MSI y GIGABYTE ya han lanzado actualizaciones beta de BIOS con el nuevo AGESA, y deberían lanzarlo a versiones estables en breve, como deberían ser ASUS y ASRock.

Algunos medios de comunicación ya han probado este nuevo firmware y, en casi todas las circunstancias, están viendo un aumento de 25-50 MHz en la forma en que se informaba la frecuencia. Consulte el artículo de Tom’s Hardware como referencia, pero en general, los informes muestran un aumento del 0.5-2.0% en el rendimiento en pruebas turbo limitadas de un solo hilo.

Tengo una CPU Ryzen 3000, ¿me afecta?

La respuesta corta es que si no estás haciendo overclocking, entonces sí. Cuando su placa base en particular tiene una actualización de BIOS para 1003ABBA, se recomienda actualizar. Tenga en cuenta que la actualización de un BIOS generalmente significa que se pierden todas las configuraciones del BIOS, por lo que debe realizar un seguimiento en caso de que la DRAM necesite XMP habilitado o similar.

Los usuarios que están atentos a la rutina en los últimos desarrollos de AMD BIOS deben conocer el procedimiento.

El futuro de Turbo

En este punto, podría hacer un comentario de que la frecuencia de un solo hilo no siempre es igual al rendimiento. Como parte de la investigación para este artículo, aprendí que algunos usuarios creen que la frecuencia de turbo que aparece en el cuadro cree que es la frecuencia de turbo de núcleo completo, lo que demuestra que el turbo todavía no se entiende bien solo de nombre. Pero a medida que las cargas de trabajo modernas se trasladan a entornos de subprocesos múltiples con procesos en segundo plano, se reduce la cantidad de tiempo que se pasa en turbo de un solo hilo. En última instancia, estamos terminando con un equilibrio entre procesos en segundo plano y requisitos sensibles a la latencia inmediata.

Al final del día, AMD identificando un déficit de 25-50 MHz y reparándolo es algo bueno. Sin embargo, el número de personas para quienes este es un límite crítico que permite un nuevo flujo de trabajo es cero. Para todos los informes de los medios de comunicación que mencionaron que AMD no alcanzó las velocidades turbo publicadas como algo importante, la mayoría de esos reporteros terminaron en contraste siendo muy moderados con la solución de AMD. El 2% en la frecuencia turbo de un solo núcleo realmente no ha cambiado a nadie en este caso, a pesar de todo el alboroto que se hizo.

Escribí este artículo solo para poner algunas cartas sobre la mesa. La forma en que AMD se acerca al concepto de Turbo es muy diferente a lo que la mayoría de la gente está acostumbrada. La forma en que AMD está agrupando sus CPU por núcleo es muy diferente a lo que estamos acostumbrados. Con todo eso en mente, las frecuencias pico de turbo no están cubiertas por la garantía y no están garantizadas, a pesar del material de marketing que se incluye en ellas. Se alienta a los usuarios que encuentren un problema a votar con su billetera en este caso.

En el futuro, le pediré a nuestro editor de la placa base, Gavin, que comience a rastrear las frecuencias máximas con nuestra herramienta WSL. Debido a que estamos definiendo la carga de trabajo, nuestros resultados pueden terminar de forma diferente a lo que los usuarios ven con sus herramientas de informes mientras ejecutan CineBench o cualquier otra carga de trabajo, pero puede ofrecer el resultado más puro que podamos imaginar.

En última instancia, las recomendaciones que hicimos en nuestra revisión de Ryzen el día del lanzamiento siguen vigentes . En todo caso, si hubiéramos experimentado alguna pérdida de frecuencia, algunos MHz adicionales en las pruebas ST empujarían las partes ligeramente hacia arriba en el gráfico. Con el tiempo volveremos a probar con las últimas actualizaciones de BIOS.

Fuente: Anandtech.com, Septiembre 2019

4 respuestas a «Alcanzando Turbo: alineando la percepción con las métricas de frecuencia de AMD»

  1. YA ENTIENDO YO active no hace mucho el PBO y el micro se comporta bastante igual a el modo automatico la latencia de la memoria m bajo de 70 a 67 ns y tengo mas puntos en el mononucleo y tambien en el multinucleo misma temp mismos voltages al modo auto(hasta 1.4…) pero en juegos no eh notado diferencia de estos cambios asi q viendo lo q dice aqui creo q por el tema de la electromigracion me conviene mas dejarlo como lo tenia antes con undervolting y una frecuencia maxima fija de 3.9ghz con 72ns lag memoria y voltajes max 1.250. mi pregunta es ahora¿ esos voltages tan altos de 1.4 en auto q le mete la board a este cpu son normales y no le haran daño al procesador a largo plazo? amd no c estara pasando un poco con los voltajes con tal de ser mas competitivos contra intel,vulnerando sus propios procesadores por forzarlos demaciado??? pudieras ampliar mas sobre la electromigracion??

      1. por favor esto esta mui interesante un articulo q hable sobre la vida util de las procesadores y la relacion con los voltages usados para intel 1.4 de volt son voltages de palabras mayores y no c recomiendan y 1.5 ya es jugarcela si o si.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *