Cada cierto tiempo aparecen noticias comparativas acerca de que procesador es mejor que otro a través de las pruebas de rendimiento. Pero, ¿sabías que se pueden manipular los benchmarks para que un procesador de mayor rendimiento de lo que realmente da? Pues bien, sobre ello vamos a hablar en este artículo, y es que no es oro todo lo que parece muchas veces y muchos fabricantes necesitan de ello para poder vender sus procesadores a precios que les sean rentables y les permitan continuar.
Una de las cosas que se aprenden cuando estudiar arquitecturas de computadores es como los procesadores pueden tomar ventaja de las pruebas de rendimiento con tal de manipular los benchmarks. Esto es algo que no es una novedad, es más, desde los inicios del PC se suelen mandar informes donde el fabricante, ya sea Intel, AMD o cualquier otra marca, suele acompañar la información de su arquitectura con números y gráficos. Sin embargo, al igual que también existen cosas como la manipulación financiera, también ocurre, aunque parezca mentira en el mundo de los procesadores.
Trampas comunes que se hacen para manipular los benchmarks
Para saber si un procesador es mejor que otro necesitamos una valoración cardinal, es decir, un número que mida el rendimiento y nos especifique si el procesador A es mejor que el B. Con solo leer las especificaciones no nos es suficiente, ya que esos datos no nos sirven para comparar una CPU con otra si son de arquitecturas distintas. Es aquí donde entran los benchmarks y sabiendo esto, los diseñadores y fabricantes de procesadores usan una serie de trucos o trampas para manipular los benchmarks.
Trampeando las instrucciones
Un benchmark no es más que un programa, es decir, una serie de instrucciones ordenadas que se ejecutan en secuencia. Pues bien, una de las trampas que llevan años, por no decir décadas, haciendo todos los arquitectos de hardware, es optimizar las que son más utilizadas en los benchmarks. ¿A qué nos referimos? Por ejemplo, hacer que tarden menos tiempo en ejecutarse. Cuando tienen que tomar la decisión sobre qué instrucción tiene más recursos en el diseño, siempre se le da más importancia a las más utilizadas y si encima estás pueden dar un mayor resultado en las pruebas de rendimiento mejor.
Velocidad de reloj y caché para manipular los benchmark
Aunque ambos son elementos separados, en apariencia están muy relacionados si hablamos de manipular resultados desde el propio chip. A día de hoy la velocidad de reloj de un procesador, los llamados GHz, puede ir fluctuando según el nivel de trabajo. El caso es que dependiendo de donde se encuentren los datos, si en algún nivel de la caché o en la RAM el consumo es menor. Lo habitual es que un programa se ejecute en la RAM, pero existen benchmarks que son microprogramas que caben en la memoria caché.
Por lo que al ejecutarse no necesitan acceder al controlador de memoria, simplemente lo hacen recursivamente desde la caché. Lo que no solo les da una latencia muy baja, sino que además un consumo menor, por lo que esto permite aumentar la velocidad de reloj a largo plazo. En un entorno convencional, dicha subida de consumo sostenida no sería recomendable, pero la prueba de rendimiento no mide ese aspecto, sino la velocidad en la que ejecuta el programa.
La trampa no es otra que la de mantener la velocidad Turbo o de Boost el mayor tiempo posible. Incluso hay diseños que especifican una velocidad en ese aspecto más baja que la que alcanzan durante dichas pruebas. Pero hecha la ley, hecha la trampa.
Pruebas multihilo y configuraciones heterogéneas
Por culpa de un mal marketing, los E-Cores de las dos últimas generaciones de Intel son confundidos con núcleos de cara a la eficiencia energética. Más bien se encuentran optimizados de cara al área. ¿Y qué sentido tienen? Cuando un procesador está ejecutando un programa a veces ocurren lo que se llaman paradas por una causa que le dejan continuar, lo cual genera periodos de inactividad a los que llamamos burbujas. Pues bien, la idea del multihilo es darle mecanismos al procesador para que cambie de contexto y se pueda encargar de otros procesos.
El problema es que esto aumenta enormemente el consumo energético y es mortal para dispositivos de bolsillo. ¿La solución? En vez de gastar espacio y transistores en el multihilo, en los dispositivos de bajo consumo se añadieron núcleos de procesador más simple. Estrategia que aparentemente ha adoptado Intel, sin embargo, los P-Cores siguen manteniendo el multihilo, por lo que la utilidad de los E-Cores no es esa. Más bien sirven para que los núcleos más potentes no pierdan el tiempo en procesar cosas que afecten al programa principal. Así pues, si de repente se activan aplicaciones como el gestor de correo, por ejemplo, que no termine por ejecutarse en primer plano.
En los benchmarks multihilo la puntuación es una suma del rendimiento de todos los núcleos, algo que no se puede desactivar. Siendo esta una de las trampas de las comparativas entre procesadores homogéneos y heterogéneos. Por lo que lo ideal sería que se marcase cuanto suma cada tipo de núcleo al total.
Falsos resultados
Este es el caso más descarado, en el que según la marca o modelo se le dan puntos extras. Esto es posible gracias al hecho que toda CPU tiene una instrucción que lo identifica, de tal manera que el programa de benchmark puede saber donde se está ejecutando y aplicar una condición positiva o negativa según sea el caso.