Internet

Benchmarks: o que é isso? para que serve? história, tipos e dicas

Índice:

Anonim

Os benchmarks são uma parte essencial de nossa análise diária de hardware, eles permitem oferecer uma medição cientificamente comparável entre diferentes componentes, como CPUs, placas gráficas, unidades de armazenamento etc. Hoje vamos dedicar algumas linhas à sua história, aos seus tipos, como elas funcionam, o que medem, quais são as medidas mais comuns e também lhe daremos algumas dicas sobre como executá-las e em quais devemos confiar.

O que conhecemos hoje no mundo PC ou móvel como benchmarks são técnicas herdadas do ambiente industrial que têm permitido, desde o início desta revolução, a tomada de decisões com base em dados comparáveis ​​em um ambiente controlado.

O mundo da computação moderna aplica essas técnicas a quase todos os seus domínios diferentes, e os usuários domésticos também as adotaram como uma maneira confiável de aprender sobre o desempenho e as capacidades de nossos sistemas, bem como um importante ponto de informação quando para tomar decisões importantes, como a compra de nosso novo computador, telefone celular, placa gráfica etc.

Hoje falaremos sobre o histórico de benchmarks de PCs, os tipos de benchmarks existentes e quais componentes de nosso sistema são mais adequados para esse tipo de teste que não é apenas desempenho.

Índice de conteúdo

História

O sistema de referência ou medição aplica um ambiente controlado e medidas reconhecíveis cientificamente comparáveis ​​e verificáveis ​​e coexistiram com o mundo do computador desde que ele existe. O benchmark, como tal, foi democratizado a ponto de se perder parte de sua essência fundamental, ou seja, que pode ser auditável e verificável por terceiros. Agora, usamos mais como uma comparação rápida de desempenho, mas a rastreabilidade de sua veracidade por terceiros certamente foi amplamente perdida.

Os métodos de benchmark mais clássicos sempre se referiram à capacidade de computação da CPU do sistema, embora nos últimos tempos tenha variado entre diferentes componentes, pois eles ganharam preponderância e importância dentro de um computador.

As duas unidades de medida mais clássicas que ainda são aplicadas são as Dhrystones e as Whetstones. Ambos se tornaram, de alguma maneira, a base de todos os parâmetros de referência sintéticos que conhecemos hoje.

O mais antigo é o Whetstones (uma localidade no Reino Unido onde ficava a divisão de energia atômica da empresa estatal de energia elétrica do Reino Unido) e Dhrystone veio mais tarde brincando com o nome do primeiro (molhado e seco).

O primeiro foi projetado nos anos 70 e o segundo é dos anos 80 e ambos são a base do desempenho comparativo que tivemos em anos sucessivos. O Whetstones, simplificando, ofereceu uma visão do poder computacional do processador em operações de ponto flutuante, operações com um grande número de casas decimais.

O Dhrystone é sua contrapartida, pois é dedicado a instruções básicas sem decimais, e ambos deram uma imagem clara do desempenho de um processador a partir de duas abordagens completamente diferentes, mas complementares. Whetstones e Dhrystone derivaram em dois conceitos que hoje usamos muito mais comumente, MIPS e FLOP.

Após essas medições, surgiram outras, como o FLOP (Aritmética de ponto flutuante - aritmética de ponto flutuante), que é, em grande parte, mais importante agora em um computador do que jamais foi, porque é a base do cálculo avançado em muitas técnicas modernas. como algoritmos de inteligência artificial, algoritmos médicos, previsão do tempo, lógica difusa, criptografia, etc.

O LINPACK foi desenvolvido pelo engenheiro Jack Dongarra na década de 1980 e continua a ser usado hoje para medir a capacidade de computação de ponto flutuante de todos os tipos de sistemas. Atualmente, existem versões otimizadas por arquitetura, fabricante da CPU, etc.

Os FLOPS preenchem nossos artigos sobre placas gráficas (certamente a precisão única ou dupla parece familiar), processadores e são a base para o cálculo dos requisitos de energia e desenvolvimento de hardware para qualquer supercomputador que esteja em operação ou desenvolvimento.

Hoje, o FLOP é a unidade de medição de desempenho mais necessária do setor, mas sempre foi combinada com o MIPS (milhões de instruções por segundo), que é uma medida de medição interessante, pois fornece o número de instruções Aritmética básica que um processador pode executar por segundo, mas isso depende mais da arquitetura do processador (ARM, RISC, x86 etc.) e da linguagem de programação do que outras unidades de medida.

À medida que o desempenho avançou, os multiplicadores aconteceram. Agora medimos o desempenho de CPUs domésticas em GIPS e GFLOPS. A base permanece a mesma, operações aritméticas clássicas. A Sisoft Sandra continua a nos oferecer esse tipo de medição em alguns de seus benchmarks sintéticos.

O MIPS também foi mais relegado à CPU como um elemento clássico e o FLOP se estendeu a outras áreas prósperas, como a capacidade do processo ou o cálculo geral de antigos processadores muito orientados para tarefas específicas, como as GPUs que todos montamos em nossos processadores ou em nossos cartões de expansão dedicados.

A esses conceitos básicos, o tempo tem acrescentado novas unidades de medida tão ou mais importantes que essas em um computador ou supercomputador moderno. O trânsito de dados é uma dessas medidas que se tornou muito importante e atualmente é medida em IOPs (operações de entrada e saída por segundo) e também em outras formas, como medidas de armazenamento em MB / GB / TB em comparação com o tempo necessário para transitar de um ponto para outro (MBps - Megabytes por segundo).

O AS-SSD pode medir o desempenho de um disco rígido em MBps ou IOPs.

Atualmente, também usamos a medida de transferência, em seus diferentes multiplicadores, como uma maneira de interpretar a velocidade do trânsito de informações entre dois pontos ao emitir determinadas informações, na verdade precisamos gerar um pouco mais de informação. Isso depende do protocolo usado para a transferência de informações.

Um exemplo claro, e que usamos muito, está na interface PCI Express. Sob esse protocolo, para cada 8 bits de informação que queremos mover (0 ou 1s), temos que gerar 10 bits de informação, pois essas informações extras servem para controlar a comunicação enviada para correção de erros, integridade de dados etc.

Outros protocolos conhecidos que também introduzem essa “perda” de informações reais são o IP, o que você está usando para ler este artigo e que faz com que sua conexão de 300MT / s ofereça um pouco menos de 300mbps de velocidade.

Portanto, usamos o Gigatransfer ou a transferência quando nos referimos às informações brutas enviadas pela interface, e não às informações realmente processadas no receptor. Um barramento de dados PCI Express 3.0 de 8GT / s está realmente enviando 6, 4 GBps de informações para cada linha conectada entre os pontos. A transferência se tornou muito importante com a integração do protocolo PCI Express em todos os principais barramentos de um computador doméstico e profissional.

Nos últimos tempos, também começamos a combinar medidas como uma maneira de relacionar o poder de processamento com outros fatores muito importantes na computação moderna, sendo o consumo uma dessas medidas que é introduzida como uma escala comparativa entre o desempenho de dois sistemas. Hoje, a eficiência energética é tão ou mais importante que a potência do processo e, portanto, é fácil ver referências que comparem a potência do processo de acordo com os watts de consumo do elemento em medição.

De fato, uma das grandes listas de supercomputadores não se refere tanto à potência bruta do computador entre todos os seus nós de computação, mas ao desenvolvimento dessa potência com base nos watts ou energia consumidos por todo o sistema. A lista Green500 (FLOPS por watt - FLOPS por watt) é um exemplo claro de como o consumo agora é básico para qualquer benchmark que se preze, embora sem dúvida todos continuemos olhando atentamente a lista do TOP500 que não tem esse fator como fator de condicionamento.

Tipos de benchmarks

Embora possamos falar sobre muito mais famílias ou tipos de benchmarks, simplificarei a lista nas duas classes mais comuns daquelas que estão mais próximas de todos nós como usuários mais ou menos avançados.

Por um lado, temos os benchmarks sintéticos que são em grande parte aqueles que nos oferecem medidas sobre as quais falamos antes. Benchmarks sintéticos são programas que executam testes controlados com um código de programa mais ou menos estável, orientado para uma plataforma e arquitetura específicas. São programas que realizam testes muito específicos que podem integrar um ou mais de nossos componentes, mas onde o mesmo teste ou testes são sempre realizados, sem alterações.

A renderização de imagem sempre foi um bom método de conhecer o desempenho de uma CPU em um sistema moderno, pois é uma tarefa exigente. O Cinebench R15 também possui vários testes, um para GPU e dois para CPU, onde podemos conhecer o desempenho de sistemas com múltiplos núcleos e threads de processo.

Eles oferecem um ambiente de teste controlado, onde não há alterações, exceto para versões e onde essas alterações são documentadas adequadamente, para que o usuário saiba quais versões podem ser comparadas. Esses tipos de programas podem testar diferentes subsistemas do nosso computador separadamente, com outras partes do código ou benchmarks específicos para executar um determinado tipo de teste ou combinados que podem ser afetados pelo desempenho de um, dois ou mais componentes do sistema. O benchmark integrado em um jogo, ou programas como Cinebench, Sisoft Sandra, SuperPI, 3DMark,… são exemplos claros de benchmarks sintéticos.

Outros benchmarks sintéticos que não devemos confundir com benchmarks reais são aqueles que simulam a execução de programas reais ou que executam scripts de ação em programas reais, eles também são sintéticos, pois não há aleatoriedade no teste, o PC Mark é um exemplo claro de um programa de benchmark sintético que podemos confundir com um benchmark real.

A referência real é um método de teste muito diferente porque aceita a aleatoriedade do uso de um programa para medir seu desempenho. Os jogadores estão acostumados a realizar esse tipo de benchmarks ou testes de desempenho quando ajustamos os parâmetros de qualidade de um jogo às possibilidades do nosso hardware.

Medir o desempenho de um jogo enquanto você joga é uma referência real.

Quando você abre o FPS que o jogo está oferecendo e tenta atingir os 60FPS desejados continuamente, eles estão realizando uma referência real. O mesmo pode ser extrapolado para qualquer outro tipo de programa e, se você é um desenvolvedor, quando otimiza o código do seu programa, também está realizando testes de benchmark reais em que mudança é o seu código ou a maneira de executá-lo em uma plataforma de hardware estável ou variável.

Ambos os tipos de benchmarks são importantes, os primeiros nos permitem comparar nosso sistema com outros em um ambiente controlado e os segundos são uma maneira de otimizar nossa operação, onde também são adicionados dois fatores importantes, a aleatoriedade na execução e o fator humano. Ambos os fatores oferecem um ponto de vista adicional sobre o desempenho do componente ou componentes que queremos testar.

Considerações ao fazer comparações

Para que um benchmark seja útil e eficaz, precisamos levar em consideração certos fatores que são realmente importantes. A comparação entre diferentes plataformas e arquiteturas apresenta um importante fator de incerteza, e é por isso que esse tipo de benchmark permite comparar telefones celulares iOS com computadores Windows x86. Para dar um exemplo, é necessário levá-los com pinças, pois isso não muda apenas kernel do sistema operacional, mas as arquiteturas de processador são muito diferentes. Os desenvolvedores deste tipo de benchmarks (por exemplo, Geekbench) introduzem fatores de correção entre suas diferentes versões que dificilmente são controláveis.

Portanto, a primeira chave para que um benchmark seja comparável entre diferentes hardwares é que o ecossistema de teste seja o mais semelhante possível à plataforma, sistema operacional, drivers e versão de software do benchmark. Certamente haverá elementos aqui que não podemos controlar a homogeneização, como o controlador gráfico, se testarmos os gráficos da AMD contra os gráficos da Nvidia, mas o resto temos que tentar torná-lo o mais estável possível. Nesse caso, também incluiríamos hardware, já que para comparar placas gráficas, você deve usar o mesmo sistema operacional, o mesmo processador, as mesmas memórias e todos os parâmetros operacionais, mantendo-os iguais, incluindo os parâmetros de qualidade, resolução e teste no benchmark. Quanto mais estável for o nosso ecossistema de teste, mais confiáveis ​​e comparáveis ​​serão os nossos resultados.

Recomendamos a leitura Como saber se meu processador possui um gargalo?

Outra coisa que precisamos levar em consideração é que os testes de benchmark normalmente têm um fator de estresse no hardware que vamos testar e normalmente sujeitam esse hardware a situações que normalmente não ocorrem no uso normal do sistema. Todas as referências que tiramos do disco rígido, da placa de vídeo ou do processador as submetem a situações que podem ser perigosas para o hardware; portanto, devemos estabelecer as medidas apropriadas para que o ponto de tensão não se torne um ponto de fratura ou também um elemento de redução de desempenho, uma vez que muitos componentes possuem sistemas de proteção com os quais reduzem seu desempenho no caso, por exemplo, de temperaturas fora da faixa de uso. Resfriamento adequado, períodos de descanso entre os testes, alimentação correta dos componentes sob teste… tudo deve estar em uma situação ideal para que o teste seja executado sem problemas.

Por outro lado, também usamos com precisão esse tipo de benchmarks, a fim de sujeitar o sistema a estresse para ver sua estabilidade nesse tipo de situação; é uma maneira diferente de aplicar um benchmark, pois ele não está apenas buscando conhecer o desempenho, mas também se o sistema é estável e ainda mais, se o sistema funcionar como deveria nessas situações estressantes.

Conclusão

Para aqueles de nós dedicados a testar o hardware do computador profissionalmente, o benchmark é uma ferramenta de trabalho e, graças a isso, os usuários têm uma maneira científica e verificável de comparar ou conhecer o desempenho do nosso próximo computador em cada um de seus subsistemas com precisão. comparável às ferramentas utilizadas no nível industrial.

Uma tabela de teste, como a que você vê na imagem, procura padronizar com precisão o método de teste, para que o benchmark comparativo seja o mais confiável possível e seja testável ao introduzir variações que modificam os resultados.

Porém, como qualquer teste "de laboratório", para que seja confiável, é necessário que haja condições adequadas para que seja realizado e, ainda mais, para que seja comparável entre diferentes sistemas.

Hoje, falamos um pouco sobre a história desse tipo de programa, seus diferentes tipos, como eles funcionam e como obter informações confiáveis ​​deles. Eles são úteis, mas para mim são apenas mais uma informação a ter em mente e eu sempre a colocaria atrás de experiências pessoais e testes ativos com programas reais que vamos usar todos os dias.

Um benchmark é bom para colocar dados de desempenho mínimo em nosso processo de decisão, mas eles não devem definir essas decisões e, como última dica, evitar benchmarks sintéticos que afirmam poder comparar o desempenho entre arquiteturas, sistemas operacionais etc.

Internet

Escolha dos editores

Back to top button