Otimização ou trapaça? Benchmarks para CPUs da Intel não serão aceitos!

O SPEC (Standard Performance Evaluation Corporation) é um consórcio sem fins lucrativos, no qual fazem parte dezenas de empresas como os fabricantes de hardwares e os desenvolvedores de softwares, bem como as instituições educacionais, os centros de pesquisas e as agências governamentais, entre outros. Ele tem como objetivo, estabelecer e manter padrões para testes de benchmarks, além de oferecer ferramentas de avaliação de desempenho, para as principais plataformas computacionais. Dado o seu posicionamento universal e neutro, as suas publicações são consideradas confiáveis e imparciais…

“SPEC says it will no longer be publishing SPEC CPU 2017 results for Intel CPUs running a specific version of the Intel compiler, citing displeasure over an apparent targeted optimization for a specific workload (via ServeTheHome and Phoronix) that essentially amounts to cheating. A note has been added to the more than 2,600 benchmark results published with the offending compiler, effectively invalidating those results, mostly from machines running 4th Gen Xeon Sapphire Rapids CPUs.”

— by Tom’s Hardware.

Por isto, ela recentemente decidiu não publicar mais os resultados do SPEC CPU 2017 para CPUs Intel, para as quais estão utilizando uma versão específica do seu compilador, em vista do descontentamento com uma aparente otimização direcionada para uma carga de trabalho específica, o que (segundo o seu ponto de vista) caracteriza uma trapaça por parte da Intel. Uma nota foi adicionada aos mais de 2.600 resultados de benchmark publicados com o compilador em questão e por isto, os seus resultados foram invalidados, principalmente para as máquinas que possuem CPUs Xeon Sapphire Rapids de 4ª geração. Eita, Intel… de novo?

Para se ter uma idéia do impacto da decisão tomada pelo SPEC, saibam que os seus pacotes de benchmarks são utilizados principalmente para os diversos tipos de plataformas computacionais (servidores, data centers e estações de trabalho/PCs de última geração) e por isto, se tornou uma referência na medição de desempenho para diversos processadores disponíveis no mercado. No entanto, as otimizações de software feita para o compilador oneAPI DPC++/C++ da Intel para promover melhores resultados nos testes 523.xalancbmk_r e 623.xalancbmk_s, acabam dando uma certa vantagem em comparação aos demais processadores: +/- 9% de diferença!

Não há nada de errado realizar otimizações de software para os compiladores, já que o software pode (e deve) rodar com a máxima performance em suas plataformas computacionais! O problema está nas otimizações voltadas especificamente para obter melhores resultados de benchmark e assim, usá-los para promover os seus produtos e serviços. E esta não será a primeira (e nem a última) vez que veremos situações deste tipo: há alguns anos, a Nvidia também foi acusada de realizar uma otimização do lado do driver para aumentar o desempenho de suas GPUs no 3DMark 2003 e anos depois, acusou a AMD de não promover configurações específicas em seus drivers para melhorar a qualidade gráfica em detrimento da performance geral de suas GPUs.

E a cada dia que passa, confio menos nos testes de benchmark… &;-D