He leído que los fabricantes dejaron de concentrarse en velocidades de reloj más altas y ahora están trabajando en otras cosas para mejorar el rendimiento.
Con
- Una vieja máquina de escritorio con procesador Intel® Xeon® E3110 con velocidad de reloj de 3.0GHz
- y un nuevo servidor con procesador AMD Opteron (TM) 6272 con velocidad de reloj de 2.1GHz
cuando se realiza una comparación de cifrado simple usando (un solo hilo)
openssl aes256c
el escritorio funcionó mucho mejor que el servidor.
Entonces, incluso con la última optimización, ¿por qué el procesador con la mejor velocidad de reloj funciona mejor?
Respuestas:
La razón por la que los fabricantes han dejado de concentrarse en aumentar la velocidad del reloj es porque ya no podemos enfriar los procesadores lo suficientemente rápido como para que esto sea viable. Cuanto mayor es la velocidad del reloj, más calor se genera, y ahora hemos llegado a una etapa en la que ya no es eficiente aumentar la velocidad del procesador debido a la cantidad de energía que se usa para enfriarlo.
Otra respuesta entra en detalles sobre cómo una mayor velocidad de reloj no significa un mejor rendimiento en todas las áreas.
fuente
La velocidad de procesamiento es mucho más que la velocidad del reloj.
Las diferentes CPU pueden hacer diferentes cantidades en el mismo número de ciclos de reloj, debido a las diferentes variantes en la disposición de la tubería y al tener múltiples unidades componentes (sumadores, etc.) en cada núcleo. Si bien en su prueba no es el caso, a menudo encuentra que un chip "más lento" puede hacer más que uno rápido (medido solo por la frecuencia del reloj) debido a que puede hacer más por tic.
La prueba que realizó puede ser muy sensible a las diferencias en la arquitectura de la CPU: podría optimizarse para una arquitectura específica, es posible que funcione de manera diferente no solo entre los chips Intel y AMD, sino también entre los chips Intel (o AMD) de diferentes familias. Es probable que también use un solo subproceso, por lo que no aprovecha los múltiples núcleos de las CPU.
Hay un movimiento para reducir las velocidades de reloj por razones de administración de energía y calor: aumentar la velocidad de reloj no tiene un efecto lineal sobre el uso de energía y la producción de calor.
Debido a la relación no lineal anterior, es mucho más eficiente para los requisitos actuales tener múltiples unidades de procesamiento que impulsar la velocidad de una unidad cada vez más. Esto también permite trucos ingeniosos para conservar energía, como apagar los núcleos individuales cuando no están en uso y reactivarlos a medida que aumenta la demanda nuevamente. Por supuesto, múltiples núcleos no ayudan a un algoritmo de un solo subproceso, por supuesto, aunque lo haría si ejecutara dos o más instancias al mismo tiempo.
fuente
¿Por qué crees que los fabricantes están realmente reduciendo la velocidad del reloj al comparar solo dos procesadores?
Además, la velocidad del reloj no es lo mismo que el rendimiento por ciclo de reloj. Puede tener un P4 de 3.8 Ghz frente a un núcleo de 3.2 Ghz de un i7-3930K, pero eso no significa que el núcleo P4 sea más rápido.
Todo lo dicho aquí sobre el consumo de energía también es perfectamente válido y verdadero para un diseño de 16 núcleos, donde, naturalmente, debe preocuparse más por los problemas de TDP.
Además, su método de referencia que solo prueba OpenSSL es un poco simple para dar números del mundo real. Tal vez deberías probar cualquier conjunto de pruebas de cifrado.
fuente
Su caso de prueba (cifrado aes-256) es muy sensible a las optimizaciones específicas del procesador.
Hay varias CPU que tienen instrucciones especiales destinadas a acelerar las operaciones de cifrado / descifrado. Estas instrucciones especiales no solo pueden estar presentes en su escritorio, sino que la CPU AMD tiene diferentes instrucciones especiales. Además, openssl podría admitir estas instrucciones especiales solo para la CPU Intel. ¿Verificaste si ese era el caso?
Para averiguar qué sistema es más rápido, intente usar un conjunto de pruebas de referencia "adecuado", o mejor, simplemente use su carga de trabajo típica.
fuente
Simple: el chip AMD es mucho, mucho más rápido porque es un chip de 16 núcleos. A 115 vatios, significa que cada núcleo produce ~ 7 vatios. Esto no sería posible si cada núcleo funcionara a 3 Ghz. Para lograr esa cifra de 7 vatios, AMD bajó la frecuencia del reloj. Reducir la frecuencia del reloj en un 10% reduce el consumo de energía en un 20%, lo que a su vez le permite colocar un 25% de núcleos adicionales en un chip.
fuente
Como han dicho otros, ya no podemos enfriar efectivamente las CPU si tuviéramos que presionar el voltaje requerido para los mismos aumentos relativos de velocidad de reloj en el pasado. Hubo un momento (era P4 y anterior) en el que se podía comprar una nueva CPU y ver una ganancia "inmediata" es la velocidad porque la velocidad del reloj aumentó significativamente en comparación con la generación anterior. Ahora nos hemos topado con una pared térmica, de algún tipo.
Cada nueva generación moderna de procesadores está aumentando ligeramente la velocidad del reloj, pero esto también es relativo a la capacidad de enfriarlos adecuadamente. Los fabricantes de chips, como Intel, se centran continuamente en reducir el tamaño de la matriz de la CPU para que sean más eficientes y produzcan menos calor en los mismos relojes. Como nota al margen, este tamaño de matriz reducido hace que estos procesadores modernos sean más propensos a morir por sobrevoltaje en lugar de sobrecalentamiento. Esto significa que también está limitando la velocidad de reloj de techo de cualquier CPU de generación actual sin otras optimizaciones hechas por el fabricante del chip.
Otra área en la que los fabricantes de chips se centran mucho es en aumentar el número de núcleos en el chip. Esto sí tiene en cuenta aumentos significativos en el poder computacional, pero solo cuando se utiliza un software que aprovecha múltiples núcleos. Tenga en cuenta la diferencia entre potencia computacional y velocidad aquí. En pocas palabras, la velocidad se refiere a la rapidez con que una computadora puede ejecutar una sola instrucción, mientras que la potencia computacional se refiere a cuántos cálculos puede hacer una computadora en un período de tiempo determinado. Los sistemas operativos modernos y muchos softwares modernos aprovechan múltiples núcleos. El problema es que la programación concurrente / paralela es más difícil que el paradigma de programación lineal estándar. Esto aumentó el tiempo que les tomó a muchos programas en el mercado aprovechar al máximo la potencia de estos procesadores más nuevos porque muchos desarrolladores no estaban acostumbrados a escribir programas de esta manera. Todavía hay algunos programas en el mercado hoy (ya sean modernos o heredados) que no aprovechan los núcleos múltiples o los subprocesos múltiples. El programa de cifrado que citó es uno de esos ejemplos.
Estas dos áreas de enfoque de los fabricantes de chips están intrínsecamente conectadas. Al reducir tanto el tamaño de la matriz como el consumo de energía de un chip, pueden aumentar el número de núcleos en dicho chip. Eventualmente, sin embargo, esto también golpeará una pared, causando otro cambio de paradigma más drástico.
La razón de este cambio de paradigma se debe a que nos acercamos a los límites del silicio como material base para la producción de chips. Esto es algo que Intel y otros han estado trabajando en resolver durante algún tiempo. Intel ha declarado que tiene una alternativa al silicio en proceso, y probablemente comencemos a verla en algún momento después de 2017. Además de este nuevo material, Intel también está buscando transistores 3D que podrían "triplicar efectivamente la potencia de procesamiento". Aquí hay un artículo que menciona ambas ideas: http://apcmag.com/intel-looks-beyond-silicon-for-processors-past-2017.htm
fuente
Las pérdidas de calor
H
equivalen a 4º grado de frecuenciaf
.H ~ f ^ 4
Entonces, el aumento menor de frecuencia conduce a altas pérdidas de calor.
Miniaturización adicional
Una frecuencia más alta conduce a una mayor minimización del cristal. En este momento no tenemos tecnologías para trabajar eficazmente con materiales a escala de nanómetros y los nanómetros son el límite.
fuente
Como se indicó en algunas otras respuestas, los fabricantes de CPU desean mantener bajas las velocidades de reloj para controlar el consumo de energía y la disipación de calor. Para hacer más trabajo a la misma velocidad de reloj, se utilizan varias estrategias.
Los grandes cachés de memoria en chip pueden mantener más datos "cerca" de la CPU, disponibles para ser procesados con un retraso mínimo, a diferencia de la memoria principal, que es mucho más lenta para entregar datos a la CPU.
Las diferentes instrucciones de CPU requieren diferentes números de ciclos de reloj para completarse. En muchos casos, puede usar un circuito simple para implementar una operación durante varios ciclos de reloj, o un circuito más complejo para hacerlo en menos.
El ejemplo más dramático de esto en la evolución de Intel está en el Pentium 4, que fue un gran valor atípico en la velocidad del reloj, pero no funcionó proporcionalmente bien. Las instrucciones de cambio de bits, que en chips anteriores podían cambiar 32 bits en un solo ciclo, usaban un circuito mucho más simple en el Pentium 4, que requería un solo ciclo para cada cambio de bit. La expectativa era que la arquitectura Pentium 4 sería escalable a velocidades de reloj mucho más altas debido a su simplicidad, pero eso no funcionó, y el circuito de cambio rápido y complejo regresó en las arquitecturas Core y posteriores.
fuente
De IEEE:
http://spectrum.ieee.org/computing/hardware/why-cpu-frequency-stalled
fuente