El engaño de referencia contraataca: cómo OnePlus y otros fueron atrapados con las manos en la masa y lo que han hecho al respecto

Hace unos años hubo un alboroto considerable, cuando numerosos fabricantes importantes fueron atrapados haciendo trampa en los puntos de referencia. Los fabricantes de equipos originales de todos los tamaños (incluidos Samsung, HTC, Sony y LG) participaron en esta carrera armamentista por intentar engañar a los usuarios sin ser atrapados, pero afortunadamente, finalmente dejaron de hacer trampa en el punto de referencia después de algunas conversaciones francas con expertos de la industria y periodistas.

En 2013, se descubrió que Samsung estaba aumentando artificialmente la velocidad de reloj de su GPU en ciertas aplicaciones, lo que provocó una serie de investigaciones sobre trampas de referencia en toda la gama de fabricantes. En ese momento, la investigación encontró que casi todos los fabricantes, excepto Google / Motorola, estaban haciendo trampas de referencia. Todos estaban invirtiendo tiempo y dinero en intentos de obtener un rendimiento extra de sus teléfonos en puntos de referencia, de manera que no tuviera ningún efecto positivo en el uso diario, en un intento de engañar a los usuarios para que piensen que sus teléfonos son más rápidos de lo que realmente eran. Estos esfuerzos de desarrollo abarcaron toda la gama, desde establecer niveles de velocidad de reloj, forzar las velocidades del reloj a su configuración máxima, incluso crear estados especiales de mayor potencia y velocidades de reloj especiales que solo estaban disponibles cuando se realizaban evaluaciones comparativas, con estos esfuerzos a menudo resultando en solo un par de puntos porcentuales de aumento en el punto de referencia

Hubo un gran escándalo cuando se descubrió, ya que estos intentos de hacer trampa en los puntos de referencia fueron contrarios al punto mismo de los puntos de referencia. La mayoría de los puntos de referencia no están allí para decirle el rendimiento máximo teórico de un teléfono en condiciones de laboratorio que no son reproducibles en el uso diario, sino que están ahí para brindarle un punto de referencia para las comparaciones del mundo real entre teléfonos. Después de un poco de reprensión pública (y algunas conversaciones privadas) de publicaciones tecnológicas, líderes de la industria y el público en general, la mayoría de los fabricantes recibieron el mensaje de que la trampa de referencia simplemente no era aceptable, y se detuvieron como resultado. La mayoría de los pocos que no se detuvieron en ese momento se detuvieron poco después, ya que se realizaron cambios sustanciales en la cantidad de puntos de referencia que se ejecutan, en un intento de desalentar el engaño de puntos de referencia (al reducir el beneficio de ello). Muchos puntos de referencia se hicieron más largos para que la aceleración térmica de la maximización de las velocidades del reloj se hiciera evidente de inmediato.

Cuando entrevistamos a John Poole, el creador de Geekbench, el tema de la trampa de referencia y lo que pueden hacer compañías como Primate Labs para evitar que surgiera. Primate Labs en particular hizo que Geekbench 4 fuera un poco más largo que Geekbench 3, en parte para reducir los efectos de las trampas de referencia. Reducir los beneficios para garantizar que los costos de desarrollo de las trampas de referencia no valgan la pena.

"El problema es que una vez que tengamos estos tiempos de ejecución grandes si comienzas a jugar cosas aumentando tu velocidad de reloj o deshabilitando gobernadores o algo así, comenzarás a poner un peligro real real en el teléfono". ... Si vas a jugarlo ... no sacarás tanto provecho de él. Todavía puede obtener un par de por ciento, pero ¿realmente vale la pena? ”- John Poole


Que pasó

Desafortunadamente, debemos informar que algunos OEM han comenzado a hacer trampa nuevamente, lo que significa que debemos estar atentos una vez más. Afortunadamente, los fabricantes se han vuelto cada vez más receptivos a problemas como este, y con la atención adecuada, esto se puede solucionar rápidamente. Es un poco impactante ver a los fabricantes implementando trampas de referencia a la luz de cuán grave fue la reacción la última vez que se intentó (con algunas pruebas de referencia que excluyen completamente los dispositivos de trampa de sus listas de rendimiento). Con esa reacción negativa que contrasta con lo pequeñas que suelen ser las ganancias de rendimiento de las trampas de referencia (con la mayoría de los intentos que resultan en un aumento de puntaje de menos del 5% la última vez), realmente esperamos que todo esto haya quedado atrás.

El momento de este intento es especialmente inoportuno, ya que hace un par de meses la trampa de referencia dejó el mundo de ser una preocupación puramente entusiasta, y entró en la esfera pública cuando Volkswagen y Fiat Chrysler fueron sorprendidos haciendo trampa en sus puntos de referencia de emisiones. Ambas compañías implementaron un software para detectar cuándo sus autos diésel estaban siendo sometidos a pruebas de emisiones, y los hicieron cambiar a un modo de bajas emisiones que vio disminuir su economía de combustible, en un intento de competir con los autos de gasolina en eficiencia de combustible mientras se mantenían dentro de los límites regulatorios. para pruebas de emisiones. Hasta ahora, el escándalo ha dado como resultado miles de millones en multas, decenas de miles de millones de costos de retiro y cargos imputados, ciertamente no es el tipo de retribución que los OEM verían por inflar sus puntajes de referencia, que son puramente para comparaciones de usuarios y no se utilizan para medir cualquier requisito reglamentario.

Al investigar cómo Qualcomm logra velocidades de apertura de aplicaciones más rápidas en el entonces nuevo Qualcomm Snapdragon 821, notamos algo extraño en el OnePlus 3T que no pudimos reproducir en el Xiaomi Mi Note 2 o el Google Pixel XL, entre otros dispositivos Snapdragon 821. Nuestro editor en jefe, Mario Serrafero, estaba usando Qualcomm Trepn y el Snapdragon Performance Visualizer para monitorear cómo Qualcomm "aumenta" la velocidad del reloj de la CPU al abrir aplicaciones, y notó que ciertas aplicaciones en el OnePlus 3T no estaban volviendo a su velocidades de ralentí normales después de abrir. Como regla general, evitamos probar puntos de referencia con herramientas de monitoreo de rendimiento abiertas siempre que sea posible debido a la sobrecarga de rendimiento adicional que traen (particularmente en dispositivos que no son Snapdragon donde no hay herramientas de escritorio oficiales), sin embargo, en este incidente nos ayudaron observe algún comportamiento extraño que de otra manera probablemente hubiéramos pasado por alto.

Al ingresar a ciertas aplicaciones de evaluación comparativa, los núcleos del OnePlus 3T se mantendrían por encima de 0, 98 GHz para los núcleos pequeños y 1, 29 GHz para los núcleos grandes, incluso cuando la carga de la CPU cayó al 0%. Esto es bastante extraño, ya que normalmente ambos conjuntos de núcleos caen a 0, 31 GHz en el OnePlus 3T cuando no hay carga. Al ver esto por primera vez, nos preocupaba que el escalado de CPU de OnePlus simplemente se configurara un poco extraño, sin embargo, al realizar más pruebas, llegamos a la conclusión de que OnePlus debe estar dirigido a aplicaciones específicas. Nuestra hipótesis era que OnePlus estaba apuntando a estos puntos de referencia por su nombre, y estaba entrando en un modo de escala de CPU alternativo para aumentar sus puntajes de referencia. Una de nuestras principales preocupaciones era que OnePlus posiblemente establecía restricciones térmicas más flexibles en este modo para evitar los problemas que tenían con OnePlus One, OnePlus X y OnePlus 2, donde los teléfonos manejaban los núcleos adicionales que se conectaban en línea para sección central de Geekbench mal, y ocasionalmente se ralentiza sustancialmente como resultado (hasta el punto en que el OnePlus X a veces obtuvo una puntuación más baja en la sección de núcleo múltiple que en la sección de núcleo único). Puede encontrar una gran aceleración en nuestra revisión OnePlus 2, donde descubrimos que el dispositivo podría arrojar hasta el 50% de su puntaje de núcleo múltiple Geekbench 3. Más tarde, cuando comenzamos a comparar la aceleración y las térmicas en todos los dispositivos, el OnePlus 2 se convirtió en un ejemplo de libro de texto de lo que los OEM deberían evitar.

Nos comunicamos con el equipo de Primate Labs (los creadores de Geekbench), quienes fueron fundamentales para exponer la primera ola de trampas de referencia y se asociaron con ellos para realizar más pruebas. Llevamos un OnePlus 3T a la oficina de Primate Labs en Toronto para un análisis inicial. La prueba inicial incluyó un volcado de ROM que descubrió que OnePlus 3T estaba buscando directamente algunas aplicaciones por su nombre. En particular, el OnePlus 3T estaba buscando Geekbench, AnTuTu, Androbench, Quadrant, Vellamo y GFXBench. Como en este punto teníamos pruebas bastante claras de que OnePlus estaba haciendo trampas de referencia, Primate Labs construyó una versión de "Bob's Mini Golf Putt" de Geekbench 4 para nosotros. Gracias a los cambios sustanciales entre Geekbench 3 y 4, la versión "Mini Golf" tuvo que ser reconstruida desde cero específicamente para esta prueba. Esta versión de Geekbench 4 está diseñada para evitar cualquier detección de puntos de referencia, a fin de permitir que Geekbench se ejecute como una aplicación normal en teléfonos que hacen trampa (yendo más allá del cambio de nombre del paquete que engaña a la mayoría de los intentos de trampa de referencia).


Un ejemplo sorprendente

Inmediatamente después de abrir la aplicación, la diferencia fue clara. El OnePlus 3T estaba inactivo a 0, 31 GHz, como lo hace en la mayoría de las aplicaciones, en lugar de a 1, 29 GHz para los núcleos grandes y 0, 98 GHz para los núcleos pequeños como lo hace en la aplicación Geekbench normal. OnePlus estaba haciendo que el regulador de la CPU fuera más agresivo, lo que resultó en un piso de velocidad de reloj artificial práctico en Geekbench que no estaba allí en la construcción oculta de Geekbench. No se basó en la carga de trabajo de la CPU, sino en el nombre del paquete de la aplicación, que la construcción oculta podría engañar. Si bien la diferencia en las carreras individuales fue mínima, las relajaciones de estrangulamiento térmico brillan en nuestra prueba de rendimiento sostenido, que se muestra a continuación.

De nuestras pruebas, parece que esta ha sido una "característica" de Hydrogen OS durante bastante tiempo, y no se agregó a Oxygen OS hasta que la comunidad construye antes del lanzamiento de Nougat (después de que se fusionaron las dos ROM). Es un poco decepcionante verlo, especialmente a la luz de los problemas de software que OnePlus ha tenido este mes después de la fusión de las ROM, desde las vulnerabilidades del cargador de arranque hasta los problemas de cumplimiento de la GPL. Tenemos la esperanza de que a medida que el polvo se estabilice después de la fusión de los dos equipos, OnePlus volverá a formarse y continuará posicionándose como una opción amigable para los desarrolladores.

Con la versión "Mini Golf" de Geekbench en la mano, salimos y comenzamos a probar otros teléfonos para hacer trampa de referencia también. Afortunadamente, nuestras pruebas no muestran trampas por parte de las compañías que estuvieron involucradas en el escándalo hace media década. HTC, Xiaomi, Huawei, Honor, Google, Sony y otros parecen tener puntajes consistentes entre la construcción regular de Geekbench y la construcción de "Mini Golf" en nuestros dispositivos de prueba.

Desafortunadamente, encontramos posibles pruebas de trampa de referencia que aún no hemos podido confirmar de otras dos compañías, lo que investigaremos más a fondo. El peor ejemplo de esto fue en el Meizu Pro 6 Plus con Exynos 8890, que llevó la trampa de referencia a otro extremo.


Un terrible ejemplo

Meizu ha establecido históricamente su escala de CPU extremadamente conservadora. Notablemente, a menudo configuran sus teléfonos para que los núcleos grandes rara vez se conecten, incluso cuando están en su "modo de rendimiento", haciendo que los procesadores insignia (como el excelente Exynos 8890) que ponen en sus teléfonos insignia actúen como procesadores de rango medio. Esto llegó a un punto crítico el año pasado cuando Anandtech llamó a Meizu por su bajo rendimiento en los puntos de referencia JavaScript de Anandtech en el Meizu Pro 6 basado en Mediatek Helio X25, y señaló que los núcleos grandes permanecieron fuera de línea durante la mayor parte de la prueba (cuando la prueba debería haber sido corriendo casi exclusivamente en los núcleos grandes). Anandtech notó la semana pasada que se había enviado una actualización de software al Meizu Pro 6 que finalmente estaba permitiendo que Meizu usara esos núcleos al máximo. El editor senior de teléfonos inteligentes de Anandtech, Matt Humrick, comentó que “después de actualizar a Flyme OS 5.2.5.0G, el PRO 6 funciona sustancialmente mejor. Los puntajes de Kraken, WebXPRT 2015 y JetStream mejoran en aproximadamente 2x-2.5x. Aparentemente, Meizu ajustó el valor del umbral de carga, permitiendo que los hilos migren a los núcleos A72 con mayor frecuencia para un mejor rendimiento ".

Desafortunadamente, parece que en lugar de mejorar el escalado de la CPU para que sus nuevos dispositivos obtengan mejores puntajes de referencia, parecen haber configurado el teléfono para que use los núcleos grandes cuando se ejecutan ciertas aplicaciones.

Al abrir una aplicación de evaluación comparativa, nuestro Meizu Pro 6 Plus recomienda que cambie al "Modo de rendimiento" (que solo es suficiente para confirmar que están buscando nombres de paquetes específicos), y parece hacer una diferencia sustancial. Cuando está en el "Modo de equilibrio" estándar, el teléfono puntúa constantemente alrededor de 604 y 2220 en las secciones de núcleo único y núcleo múltiple de Geekbench, pero en el "Modo de rendimiento" obtiene 1473 y 3906, en gran parte gracias a que los núcleos grandes permanecen apagados para la mayoría de la prueba en "Modo de equilibrio" y activando en "Modo de rendimiento". Meizu parece bloquear los núcleos pequeños a su velocidad máxima de 1, 48 GHz, y establece un piso duro para dos de sus núcleos grandes de 1, 46 GHz cuando se ejecuta Geekbench mientras está en "Modo de rendimiento" (con los otros dos núcleos grandes se les permite escalar libremente, y de forma bastante agresiva), que no vemos al ejecutar la compilación "Mini Golf" .

Si bien poder elegir entre un modo de alta potencia y un modo de baja potencia puede ser una buena característica, en este caso no parece ser más que un truco de salón. El Meizu Pro 6 Plus obtiene puntajes decentes en el "Modo de rendimiento" para la aplicación Geekbench normal, pero cuando se usa la construcción "Mini Golf" de Geekbench, vuelve a bajar el mismo nivel de rendimiento que cuando está configurado en "Modo de equilibrio". El estado de mayor rendimiento en el Meizu Pro 6 Plus es solo para la evaluación comparativa, no para el uso real del día a día.

Una cosa a tener en cuenta es que cuando probamos el Meizu Pro 6 Plus en "Modo de rendimiento" con la construcción secreta de Geekbench, los núcleos grandes se pusieron en línea si estábamos registrando las velocidades de reloj con Qualcomm Trepn. Todavía no hemos determinado si Meizu reconoce que Trepn está funcionando y activando los núcleos grandes en parte debido a ello, o si simplemente está activando los núcleos grandes debido a la carga adicional de CPU que crea. Si bien puede parecer contrario a la intuición que una carga adicional en el fondo (como cuando mantuvimos los gráficos de rendimiento durante la prueba) aumentaría los resultados de un punto de referencia, la escala conservadora de Meizu podría significar que la sobrecarga adicional fue suficiente para superarla borde, y llame a los grandes núcleos a la acción, mejorando así el rendimiento para todas las tareas.


Cuando los OEM receptivos abordan los comentarios ...

Después de nuestras pruebas, nos comunicamos con OnePlus sobre los problemas que encontramos. En respuesta, OnePlus rápidamente prometió dejar de apuntar a las aplicaciones de evaluación comparativa con su trampa de referencia, pero aún tiene la intención de mantenerlo para los juegos (que también se comparan). En una futura compilación de OxygenOS, este mecanismo no se activará mediante puntos de referencia . OnePlus ha sido receptivo a nuestra sugerencia de agregar una palanca también, para que los usuarios sepan lo que está sucediendo debajo del capó, y al menos la ventaja injusta y engañosa en los puntos de referencia debe corregirse. Sin embargo, debido a las vacaciones del Año Nuevo Chino y su acumulación de funciones, podría pasar un tiempo antes de que veamos opciones de personalización orientadas al usuario para esta función de rendimiento. Si bien corregir el comportamiento solo es una mejora, sigue siendo un poco decepcionante verlo en las aplicaciones normales (como los juegos), ya que es una muleta para apuntar a aplicaciones específicas, en lugar de mejorar la escala de rendimiento real. Al aumentar artificialmente la agresividad del procesador y, por lo tanto, las velocidades de reloj para aplicaciones específicas en lugar de mejorar la capacidad de sus teléfonos para identificar cuándo realmente necesita velocidades de reloj más altas, OnePlus crea un rendimiento inconsistente para sus teléfonos, que solo será más evidente a medida que el teléfono envejece y se lanzan más juegos que OnePlus no ha apuntado. Sin embargo, la implementación actualmente permite que los juegos funcionen mejor. OnePlus también proporcionó una declaración para este artículo, que puede leer a continuación:

'Con el fin de ofrecer a los usuarios una mejor experiencia de usuario en aplicaciones y juegos intensivos en recursos, especialmente en gráficos intensivos, implementamos ciertos mecanismos en la comunidad y en las compilaciones de Nougat para que el procesador funcione de manera más agresiva. El proceso de activación de las aplicaciones de evaluación comparativa no estará presente en las próximas versiones de OxygenOS en OnePlus 3 y OnePlus 3T '.

Nos complace escuchar que OnePlus eliminará la trampa de referencia de sus teléfonos. En el futuro, seguiremos intentando presionar a los OEM para que sean más amigables con el consumidor siempre que sea posible, y estaremos atentos a futuras trampas de referencia.

Desafortunadamente, la única respuesta real a este tipo de engaño es la vigilancia constante . Como comunidad entusiasta de los teléfonos inteligentes, debemos estar atentos a los intentos de engañar a los usuarios de esta manera. No nos interesan los puntajes de referencia en sí, sino lo que dicen los puntos de referencia sobre el rendimiento del teléfono. Si bien el chequeo de referencia aún no estaba activo en OnePlus 3 cuando lo revisamos, una simple actualización de software fue suficiente para agregar esta "característica" engañosa, e ilustra claramente que verificar los dispositivos para la verificación de referencia no es suficiente. Cuestiones como esta pueden agregarse días, semanas, meses o incluso años después del lanzamiento del dispositivo, inflando artificialmente los promedios globales recopilados por los meses de referencia en el futuro, influyendo en el resultado final de la base de datos. Cabe señalar que, incluso con estos ajustes en los que los fabricantes tuvieron que invertir tiempo y dinero para desarrollar, generalmente solo vemos un par de puntos porcentuales de aumento en los puntajes de referencia (excluyendo un par de casos marginales como Meizu, donde el engaño está cubriendo mucho más grande) problemas). Un par de puntos porcentuales, que es mucho más pequeño que la brecha entre los dispositivos con mejor rendimiento y peor rendimiento. Sin embargo, argumentaríamos que con los dispositivos que ejecutan hardware cada vez más similar, esos puntos porcentuales adicionales podrían ser el factor decisivo en los cuadros de clasificación que los usuarios buscan en última instancia. Una mejor optimización del controlador y una escala más inteligente de la CPU pueden tener un efecto absolutamente masivo en el rendimiento del dispositivo, con una diferencia entre el puntaje del dispositivo basado en Qualcomm Snapdragon 820 de mejor desempeño y el peor desempeño (de un OEM importante) superior al 20% en Geekbench. Veinte por ciento de la optimización del controlador, en lugar de un par de puntos porcentuales por gastar tiempo y dinero para engañar a sus usuarios. Y eso es solo hablar de los esfuerzos de desarrollo que pueden afectar los puntajes de referencia. Muchos de los mayores beneficios de invertir en mejorar el software de un dispositivo no siempre aparecen en los puntos de referencia, ya que OnePlus ofrece un excelente rendimiento en el mundo real en sus dispositivos. Realmente debería ser claro dónde deberían centrarse los esfuerzos de desarrollo de una empresa en este caso. Estamos llegando a más compañías que hacen trampa en los puntos de referencia a medida que los encontramos, y esperamos que sean tan receptivos como OnePlus.


Queremos agradecer al equipo de Primate Labs una vez más por trabajar con nosotros para descubrir este problema. Hubiera sido mucho más difícil probar adecuadamente el engaño de referencia sin la edición "Mini Golf" de Geekbench.