A trapaça de referência contra-ataca: como OnePlus e outros foram pegos em flagrante e o que eles fizeram a respeito

OnePlus e Meizu foram pegos trapaceando em benchmarks. O XDA investiga como isso aconteceu e o que pode ser feito para evitar que aconteça novamente.

Há alguns anos, houve um alvoroço considerável, quando vários grandes fabricantes foram flagrados trapaceando nos benchmarks. OEMs de todos os tamanhos (incluindo Samsung, HTC, Sonye LG) participaram dessa corrida armamentista para tentar enganar os usuários sem serem pegos, mas felizmente eles finalmente pararam de trapacear no benchmark após algumas discussões francas com especialistas da indústria e jornalistas.

Em 2013, era descoberto que a Samsung estava aumentando artificialmente a velocidade de clock de sua GPU em certos aplicativos, desencadeando uma série de investigações em trapaças de benchmark em toda a gama de fabricantes. Na época, a investigação descobriu que quase todos os fabricantes, exceto Google/Motorola, estavam envolvidos em trapaças de benchmark. Todos eles estavam investindo tempo e dinheiro na tentativa de obter um desempenho extra de seus telefones em benchmarks, de maneiras que não teria nenhum efeito positivo no uso diário, na tentativa de enganar os usuários fazendo-os pensar que seus telefones eram mais rápidos do que realmente eram. Esses esforços de desenvolvimento abrangeram toda a gama, desde a definição de limites mínimos de velocidade do clock, até forçar as velocidades do clock para suas configurações máximas, até mesmo criar velocidades especiais mais altas. estados de energia e velocidades de clock especiais que só estavam disponíveis durante o benchmarking, com esses esforços muitas vezes resultando em aumentos de apenas alguns pontos percentuais em referência.

Houve uma indignação substancial quando foi descoberto, já que essas tentativas de trapacear nos benchmarks iam contra o objetivo dos próprios benchmarks. A maioria dos benchmarks não existe para informar o desempenho máximo teórico de um telefone em condições de laboratório que não são reproduzíveis no uso diário, mas existem para fornecer um ponto de referência para comparações no mundo real entre telefones. Depois de uma pequena repreensão pública (e algumas conversas privadas) de publicações de tecnologia, líderes da indústria e do público em geral, a maioria dos fabricantes recebeu a mensagem de que a trapaça de benchmark simplesmente não era aceitável e parou como um resultado. A maioria dos poucos que não pararam naquele ponto, pararam logo depois, pois foram feitas mudanças substanciais quantos benchmarks são executados, em uma tentativa de desencorajar a trapaça de benchmark (reduzindo o benefício de isto). Muitos benchmarks foram feitos por mais tempo para que o afogamento térmico resultante da maximização da velocidade do clock se tornasse imediatamente aparente.

Quando nós entrevistado John Poole, o criador do Geekbench, surgiu o tema da trapaça de benchmark e o que empresas como a Primate Labs podem fazer para evitá-la. O Primate Labs, em particular, tornou o Geekbench 4 um pouco mais longo que o Geekbench 3, em parte para reduzir os efeitos da trapaça de benchmark. Reduzir os benefícios para garantir que o desenvolvimento os custos da trapaça de benchmark não valem a pena.

"O problema é que, uma vez que tenhamos esses grandes tempos de execução, se você começar a jogar aumentando o seu relógio velocidades ou desabilitando governadores ou algo assim, você vai começar a colocar perigo real no telefone... Se você vai jogar... você não vai tirar tanto proveito disso. Você ainda pode conseguir alguns por cento, mas será que realmente vale a pena?" - John Poole


O que aconteceu

Infelizmente, devemos informar que alguns OEMs começaram a trapacear novamente, o que significa que devemos estar atentos mais uma vez. Felizmente, os fabricantes têm se tornado cada vez mais receptivos a questões como essa e, com a devida atenção voltada para isso, isso pode ser corrigido rapidamente. É um pouco chocante ver os fabricantes implementando trapaças de benchmark, tendo em vista o quão ruim foi a reação última vez que foi tentado (com alguns benchmarks excluindo completamente dispositivos trapaceiros de seu desempenho listas). Com essa reação contrastando com o quão pequenos são normalmente os ganhos de desempenho decorrentes da trapaça de benchmark (com a maioria das tentativas que resultaram em um aumento de menos de 5% na pontuação da última vez), esperávamos realmente que tudo isso ficasse para trás nós.

O momento desta tentativa é especialmente inoportuno, já que há alguns meses a trapaça de benchmark deixou o mundo de ser puramente um preocupação dos entusiastas e entrou na esfera pública quando a Volkswagen e a Fiat Chrysler foram flagradas trapaceando em suas emissões benchmarks. Ambas as empresas implementaram software para detectar quando seus carros a diesel estavam sendo submetidos a testes de emissões e fizeram com que eles mudassem para um modo de baixas emissões que viram sua economia de combustível cair, na tentativa de competir com os carros a gasolina em eficiência de combustível, mantendo-se dentro dos limites regulatórios de emissões testes. Até agora, o escândalo resultou em milhares de milhões de multas, dezenas de milhares de milhões de custos de recolha e acusações - certamente não o tipo de retribuição Os OEMs jamais veriam isso inflacionar suas pontuações de benchmark, que são puramente para comparações de usuários e não são usadas para medir qualquer regulamentação requisitos.

Enquanto investigando como a Qualcomm alcança velocidades de abertura de aplicativos mais rápidas no então novo Qualcomm Snapdragon 821, notamos algo estranho no OnePlus 3T que não conseguimos reproduzir no Xiaomi Mi Nota 2 ou o Google PixelXL, entre outros dispositivos Snapdragon 821. Nosso editor-chefe, Mario Serrafero, estava usando o Qualcomm Trepn e o Snapdragon Performance Visualizer para monitorar como a Qualcomm “aumenta” a CPU velocidade do clock ao abrir aplicativos e notei que certos aplicativos no OnePlus 3T não estavam voltando às velocidades normais de inatividade após abertura. Como regra geral, evitamos testar benchmarks com ferramentas de monitoramento de desempenho abertas sempre que possível devido à sobrecarga adicional de desempenho que elas trazem (particularmente em dispositivos não-Snapdragon onde não existem ferramentas oficiais de desktop), no entanto, neste incidente, eles nos ajudaram a notar algum comportamento estranho que provavelmente teríamos perdido de outra forma.

Ao entrar em certos aplicativos de benchmarking, os núcleos do OnePlus 3T ficariam acima de 0,98 GHz para os núcleos pequenos e 1,29 GHz para os núcleos grandes, mesmo quando a carga da CPU caísse para 0%. Isso é bastante estranho, já que normalmente ambos os conjuntos de núcleos caem para 0,31 GHz no OnePlus 3T quando não há carga. Ao ver isso pela primeira vez, ficamos preocupados que o dimensionamento da CPU do OnePlus estivesse simplesmente definido de forma um pouco estranha, no entanto, após mais testes, chegamos à conclusão de que o OnePlus deve ter como alvo específico formulários. Nossa hipótese era que o OnePlus estava visando esses benchmarks pelo nome e entrando em um modo alternativo de escalonamento de CPU para aumentar suas pontuações de benchmark. Uma de nossas principais preocupações era que o OnePlus possivelmente estava definindo restrições térmicas mais flexíveis neste modo para evitar os problemas que tiveram com o OnePlus Um, OnePlus X e OnePlus 2, onde os telefones lidavam mal com os núcleos adicionais que ficavam on-line para a seção multi-core do Geekbench, e ocasionalmente diminuindo substancialmente como resultado (a ponto de o OnePlus X às vezes ter pontuação mais baixa na seção multi-core do que na seção única seção central). Você pode encontrar afogamentos pesados ​​em nosso Análise do OnePlus 2, onde descobrimos que o dispositivo poderia reduzir até 50% de sua pontuação multi-core do Geekbench 3. Mais tarde, quando começamos a comparar o afogamento e as temperaturas entre dispositivos, o OnePlus 2 tornou-se um exemplo clássico do que os OEMs deveriam evitar.

Entramos em contato com a equipe em Laboratórios de Primatas (os criadores do Geekbench), que foram fundamentais para expor a primeira onda de trapaças de benchmark, e fizeram parceria com eles para testes adicionais. Trouxemos um OnePlus 3T para o escritório da Primate Labs em Toronto para algumas análises iniciais. O teste inicial incluiu um despejo de ROM que descobriu que o OnePlus 3T estava procurando diretamente alguns aplicativos pelo nome. Mais notavelmente, o OnePlus 3T procurava Geekbench, AnTuTu, Androbench, Quadrant, Vellamo e GFXBench. Como a essa altura tínhamos evidências bastante claras de que o OnePlus estava trapaceando em benchmarks, a Primate Labs construiu um “Mini Golf Putt do Bob” versão do Geekbench 4 para nós. Graças ao mudanças substanciais entre Geekbench 3 e 4, o "Mini golfe" A versão teve que ser reconstruída do zero especificamente para este teste. Esta versão do Geekbench 4 foi projetada para evitar qualquer detecção de benchmark, a fim de permitir que o Geekbench funcione normalmente. aplicativo em telefones que estão trapaceando (indo além da renomeação de pacotes que engana a maioria das tentativas de benchmark trapaceando).


Um exemplo surpreendente

Imediatamente ao abrir o aplicativo, a diferença ficou clara. O OnePlus 3T estava ocioso a 0,31 GHz, como acontece na maioria dos aplicativos, em vez de 1,29 GHz para os núcleos grandes e 0,98 GHz para os núcleos pequenos, como acontece no aplicativo Geekbench normal. O OnePlus estava tornando seu governador de CPU mais agressivo, resultando em um piso prático de velocidade de clock artificial no Geekbench que não estava lá na versão oculta do Geekbench. Não foi baseado na carga de trabalho da CPU, mas sim no nome do pacote do aplicativo, que a compilação oculta poderia enganar. Embora a diferença nas execuções individuais tenha sido mínima, os relaxamentos da aceleração térmica brilham em nosso teste de desempenho sustentado, mostrado abaixo.

Pelos nossos testes, parece que este tem sido um “recurso” do Hydrogen OS já há algum tempo e não foi adicionado ao Oxygen OS até que a comunidade seja construída antes do lançamento do Nougat (após o lançamento do Nougat). duas ROMs foram mescladas). É um pouco decepcionante ver, especialmente à luz dos problemas de software que o OnePlus teve este mês após a fusão das ROMs, de vulnerabilidades do bootloader para Problemas de conformidade com GPL. Esperamos que, à medida que a poeira baixar após a fusão das duas equipes, o OnePlus retorne à forma e continue a se posicionar como uma opção amigável ao desenvolvedor.

Com o "Mini golfe" versão do Geekbench em mãos, saímos e começamos a testar outros telefones para trapaças de benchmark também. Felizmente, os nossos testes não mostram qualquer fraude por parte das empresas envolvidas no escândalo há meia década. HTC, Xiaomi, Huawei, Honor, Google, Sony e outros parecem ter pontuações consistentes entre a versão normal do Geekbench e o "Mini golfe" construir em nossos dispositivos de teste.

Infelizmente, encontramos possíveis evidências de fraude de benchmark que ainda não conseguimos confirmar em algumas outras empresas, que iremos investigar mais detalhadamente. O pior exemplo disso foi no Meizu Pro 6 Plus com Exynos 8890, que levou a trapaça do benchmark a outro extremo.


Um exemplo terrível

A Meizu historicamente definiu o dimensionamento de sua CPU de forma extremamente conservadora. Notavelmente, eles frequentemente configuram seus telefones para que os grandes núcleos raramente fiquem online, mesmo quando estão em seu “modo de desempenho”, fazendo com que os principais processadores (como o excelente Exinos 8890) que eles colocam em seus telefones principais funcionam como processadores de médio porte. Isso veio à tona no ano passado, quando Anandtech chamou Meizu por seu baixo desempenho nos benchmarks de JavaScript da Anandtech no Meizu Pro 6 baseado em Mediatek Helio X25, e observou que os grandes núcleos permaneceram off-line durante a maior parte do teste (quando o teste deveria estar sendo executado quase exclusivamente nos grandes núcleos). A Anandtech notou na semana passada que uma atualização de software foi enviada para o Meizu Pro 6 que finalmente permitiu que o Meizu usasse esses núcleos ao máximo. Editor sênior de smartphones da Anandtech, Matt Humrick, comentou que "Depois de atualizar para Flyme OS 5.2.5.0G, o PRO 6 tem um desempenho substancialmente melhor. As pontuações do Kraken, WebXPRT 2015 e JetStream melhoraram cerca de 2x-2,5x. A Meizu aparentemente ajustou o valor do limite de carga, permitindo que os threads migrassem para os núcleos A72 com mais frequência para melhor desempenho."

Infelizmente, parece que, em vez de melhorar o escalonamento da CPU para que seus novos dispositivos obtenham melhores pontuações de benchmark, eles parecem ter configurado o telefone para passar a usar núcleos grandes quando determinados aplicativos são correndo.

Ao abrir um aplicativo de benchmarking, nosso Meizu Pro 6 Plus recomenda que você mude para o “Modo Desempenho” (que sozinho é suficiente para confirmar que eles estão procurando nomes de pacotes específicos) e parece fazer uma diferença substancial. Quando no “Modo Balance” padrão, o telefone pontua consistentemente em torno de 604 e 2220 nas seções single-core e multi-core do Geekbench, mas em “Modo Desempenho” pontua 1473 e 3906, em grande parte graças aos grandes núcleos que permaneceram desligados durante a maior parte do teste no “Modo Equilíbrio” e ligaram em "Modo de desempenho". Meizu parece travar os pequenos núcleos em sua velocidade máxima de 1,48 GHz e estabelecer um piso rígido para dois de seus grandes núcleos de 1,46 GHz durante a execução. Geekbench enquanto está no “Modo Desempenho” (com os outros dois grandes núcleos podendo escalar livremente e de forma bastante agressiva), o que não vemos quando executando o "Mini golfe" construir.

Embora poder escolher entre um modo de alta potência e um modo de baixa potência possa ser um recurso interessante, neste caso parece ser nada mais do que um truque de salão. O Meizu Pro 6 Plus obtém pontuações decentes no “Modo Desempenho” para o aplicativo Geekbench normal, mas ao usar o "Mini golfe" build do Geekbench, ele cai de volta ao mesmo nível de desempenho de quando está definido para “Modo de equilíbrio”. O estado de desempenho mais alto do Meizu Pro 6 Plus é apenas para benchmarking, não para uso diário real.

Uma coisa digna de nota é que quando testamos o Meizu Pro 6 Plus no “Modo Desempenho” com o segredo compilação do Geekbench, os grandes núcleos ficavam online se estivéssemos registrando as velocidades de clock com a Qualcomm Trepn. Ainda não determinamos se o Meizu está reconhecendo que o Trepn está rodando e ligando os grandes núcleos em parte por causa disso, ou se simplesmente está ligando os grandes núcleos por causa da carga extra da CPU que ele cria. Embora possa parecer contra-intuitivo que uma carga adicional em segundo plano (como quando mantivemos os gráficos de desempenho durante o teste) aumentar resultados de um benchmark, o dimensionamento conservador da Meizu pode significar que a sobrecarga extra foi o suficiente para levá-lo ao limite e colocar os grandes núcleos em ação, melhorando assim o desempenho de todos tarefas.


Quando OEMs receptivos abordam feedback...

Após nossos testes, entramos em contato com o OnePlus sobre os problemas que encontramos. Em resposta, A OnePlus rapidamente prometeu parar de visar aplicativos de benchmarking com seus cheats de benchmark, mas ainda pretende mantê-los para jogos (que também são avaliados). Numa versão futura do OxygenOS, este mecanismo não será acionado por benchmarks. O OnePlus aceitou nossa sugestão de adicionar também um botão de alternância, para que os usuários saibam o que está acontecendo nos bastidores e, pelo menos, a vantagem injusta e enganosa nos índices de referência deveria ser corrigido. Porém, devido ao feriado do Ano Novo Chinês e ao acúmulo de recursos, pode demorar um pouco até vermos opções de personalização voltadas para o usuário para esse recurso de desempenho. Embora corrigir o comportamento por si só seja uma melhoria, ainda é um pouco decepcionante ver aplicativos (como jogos), pois é uma muleta para direcionar aplicativos específicos, em vez de melhorar o desempenho real dimensionamento. Aumentando artificialmente a agressividade do processador e, portanto, a velocidade do clock de aplicativos específicos, em vez de melhorar a capacidade do telefone de identificar quando ele realmente precisa de maior velocidade velocidades de clock, o OnePlus cria um desempenho inconsistente para seus telefones, o que só se tornará mais aparente à medida que o telefone envelhece e mais jogos que o OnePlus não tem como alvo são lançado. No entanto, a implementação atualmente permite que os jogos tenham um melhor desempenho. OnePlus também forneceu uma declaração para este artigo, que você pode ler abaixo:

 'Para oferecer aos usuários uma melhor experiência em aplicativos e jogos com uso intensivo de recursos, especialmente com uso intensivo de gráficos uns, implementamos certos mecanismos na comunidade e compilações do Nougat para acionar o processador para rodar mais agressivamente. O processo de acionamento para aplicativos de benchmarking não estará presente nas próximas compilações do OxygenOS no OnePlus 3 e OnePlus 3T.

Temos o prazer de saber que o OnePlus removerá a trapaça de benchmark de seus telefones. No futuro, continuaremos a tentar pressionar os OEMs a serem mais amigáveis ​​ao consumidor sempre que possível e estaremos atentos a futuras fraudes nos benchmarks.

Infelizmente, a única resposta real a este tipo de engano é a vigilância constante. Como comunidade de entusiastas de smartphones, precisamos ficar atentos a tentativas de enganar os usuários dessa forma. Não estamos interessados ​​nas pontuações dos benchmarks em si, mas sim no que os benchmarks dizem sobre o desempenho do telefone. Embora a trapaça do benchmark ainda não estivesse ativa no OnePlus 3 quando o analisamos, uma simples atualização de software foi suficiente para adicionar esse “recurso” enganoso, e ilustra claramente que verificar os dispositivos quanto a trapaças de benchmark quando eles são lançados pela primeira vez não é suficiente. Problemas como este podem ser adicionados dias, semanas, meses ou até anos após o lançamento do dispositivo, artificialmente inflacionando as médias globais coletadas pelos benchmarks meses depois, influenciando o banco de dados final resultado. Deve-se notar que mesmo com esses ajustes que os fabricantes tiveram que investir tempo e dinheiro para desenvolver, normalmente vemos apenas um aumento de alguns pontos percentuais nas pontuações de benchmark (excluindo alguns casos marginais como Meizu, onde a trapaça está encobrindo problemas muito maiores). Alguns pontos percentuais, o que é muito menor do que a diferença entre os dispositivos com melhor e pior desempenho. Argumentaríamos, porém, que com dispositivos executando hardware cada vez mais semelhante, esses pontos percentuais extras podem ser o fator decisivo nos gráficos de classificação que os usuários procuram. Melhor otimização de driver e dimensionamento de CPU mais inteligente podem ter um efeito absolutamente enorme no desempenho do dispositivo, com a diferença entre a pontuação do dispositivo baseado no Qualcomm Snapdragon 820 de melhor desempenho e do dispositivo de pior desempenho (de um grande OEM) excedendo 20% em Geekbench. Vinte por cento da otimização do driver, em vez de alguns pontos percentuais gastos com tempo e dinheiro para enganar seus usuários. E isso se refere apenas aos esforços de desenvolvimento que podem afetar as pontuações dos benchmarks. Muitos dos maiores benefícios de investir na melhoria do software de um dispositivo nem sempre aparecem nos benchmarks, com o OnePlus oferecendo excelente desempenho no mundo real em seus dispositivos. Realmente deveria ficar claro onde os esforços de desenvolvimento de uma empresa deveriam se concentrar neste caso. Estamos entrando em contato com mais empresas que trapaceiam nos benchmarks à medida que os encontramos e esperamos que sejam tão receptivos quanto o OnePlus.


Gostaríamos de agradecer mais uma vez à equipe da Primate Labs por trabalhar conosco para descobrir esse problema. Teria sido substancialmente mais difícil testar adequadamente o Benchmark Cheating sem a edição “Mini Golf” do Geekbench.