Biostar Racing P1: escape frio

Não fomos os primeiros a perceber que computadores compactos, como o Intel Compute Stick, não são bons o suficiente em termos de desempenho. Familiarizando-se com um dispositivo semelhante da Biostar, as expectativas não eram as mais otimistas. Assim como os modelos mais novos de computadores portáteis, o Racing P1 roda em um dos processadores mais fracos da família Atom Z8000. No entanto, o chip x5-Z8350 escolhido pela Biostar é apenas um passo, mas mais produtivo do que seu irmão mais novo. Vamos tentar avaliar o desempenho dessa plataforma, que, graças aos esforços da Biostar, não é mais um problema, mas também não é um laptop.


Fig 1 . USB 3.0 / 2.0, um slot para cartão SD, contatos de luz de fundo, um fone de ouvido e um botão liga / desliga

As ferramentas usadas são o benchmark NCRB (NUMA CPU e RAM Benchmarks) para Win64 e o utilitário de plataforma cruzada para identificar o processador JavaCPUID.


CPU


A instrução CPUID confirma que o processador Intel Atom x5-Z8350 está instalado na plataforma Biostar Racing P1 . Sua frequência nominal é de 1,44 GHz, o que, no entanto, não impede que ela acelere legalmente para 1,92 GHz, se necessário. Mesmo com um breve conhecimento desta plataforma, o paradoxo é óbvio: sua operação na faixa de 1,44 a 1,92 é mais uma regra do que uma exceção a ela.


Fig 2 . Especificações de fábrica da Intel Atom x5-Z8350

A decisão do processador x5-Z8350 de selecionar a freqüência mínima ou padrão do relógio e iniciar o modo Turbo é baseada em uma análise da carga e da temperatura operacional. A estrutura SDP (Scenario Dissipated Power) define o consumo típico de energia de um dispositivo. Os mecanismos de controle avaliam independentemente a situação e, no caso de carga "leve", reduzem o consumo de energia do chip. A capacidade de ativar o modo Turbo é uma função da temperatura, portanto os resultados dos testes de verão e inverno podem variar. Em geral, o Racing P1 também está “trocando de sapato” para a temporada.


Indo além do escopo do estudo, notamos que o pós-combustor leva ao consumo de até 7 watts nas linhas de energia ~ 220 V. O modo de cruzeiro Racing P1 reduz esse valor pela metade, o modo de suspensão requer um pouco mais de 2 watts da rede elétrica CA (o monitoramento do consumo foi realizado com um wattímetro doméstico normal) .


Fig 3 . CPUID nos recursos do Intel Atom x5-Z8350

O Intel Atom x5-Z8350 trabalha com dados com capacidade máxima de 128 bits. As extensões funcionais modernas AVX 256/512 não são suportadas. Isso significa que nossa ferramenta de medição será um conjunto de instruções vetoriais SSE 128 e o objeto de medição - memória cache e RAM dinâmica.


Fig 4 . Janela Informações do sistema e seleção de modo de teste para o utilitário NCRB: O menu à esquerda exibe conjuntos de instruções, incluindo extensões funcionais suportadas pelo processador

Uma digressão importante é apropriada aqui: no caso geral, a capacidade máxima de operandos não significa desempenho máximo. Portanto, vários processadores AMD até o AM2, inclusive, processam dois downloads de 64 bits com instruções MOV clássicas mais rapidamente do que uma carga SSE de 128 bits com instruções MOVAPD. Lembrando disso, antes de experimentar, garantimos experimentalmente - o uso do SSE para o Atom x5-Z8350 é realmente o cenário mais produtivo.


Cache L1


Normalmente, o tamanho do cache é múltiplo da capacidade de dois. No primeiro nível, o fabricante tenta distribuí-lo uniformemente entre instruções e dados. Todos esses cânones não são respeitados pela arquitetura do processador x5-Z8350. Cada um de seus quatro núcleos possui 32 kilobytes de cache para instruções e 24 kilobytes para dados.


Fig 5 . Classificação dos níveis de cache

Várias fontes fornecem o produto do tamanho da memória cache de um núcleo pelo número, o que fornece uma visão mais impressionante: cache de instruções de 128 KB e cache de dados de 96 KB. A página oficial é tradicionalmente silenciosa sobre o cache L1, pelo menos no momento da redação deste documento.


Observe que o cache de nível zero (semelhante ao L1 Trace Cache), que armazena instruções decodificadas e melhora a eficiência de ciclos curtos, não é declarado pela instrução CPUID. A verificação de sua disponibilidade e a análise do funcionamento merecem uma publicação separada.


Teorias e Práticas: Desempenho de Cache


A medição da velocidade do cache consiste em operações cíclicas de leitura ou gravação de um bloco cujo tamanho é menor que o tamanho do nível do cache em estudo e, portanto, as operações de acesso a dados são hits do cache. De fato, a escolha do destino (cache L1, L2 ou DRAM) é determinada pelo tamanho do bloco de dados processados.


Após especificar a entidade que está sendo testada, passamos a considerar as operações no nível das instruções da máquina. Em nosso experimento, usamos um ciclo estendido de dezesseis instruções SSE2 MOVAPD, cada uma das quais transmite um operando de 128 bits entre a memória e um dos registradores XMM. Como resultado, 16 registros XMM0 ... XMM15 são totalmente carregados em uma iteração do loop.


Para completar, observamos que a instrução MOVAPD também pode ser usada para transferir dados entre dois registradores XMM, mas, no nosso caso, as operações de registrador não dão uma idéia do desempenho dos objetos de memória. O desempenho máximo é garantido pelo requisito de alinhamento exigido pela instrução MOVAPD: o endereço do operando deve ser um múltiplo de 16 bytes (128 bits).



Benchmarks de cache L1


Embora o bloco de leitura ou gravação seja menor que o tamanho do cache L1 (no gráfico, este é o eixo X), a taxa de câmbio é alta. Assim que um bloco ultrapassa L1, ocorrem falhas no cache e a velocidade cai. Obviamente, ao avaliar o desempenho, o “passo superior” correspondente à parte esquerda do gráfico é informativo.


Fig 6 . Gráfico da velocidade de leitura de um bloco de dados em seu tamanho;
Bairro X = Tamanho L1

A velocidade máxima em megabytes por segundo (MBPS) corresponde ao número mínimo de ticks por instrução ( CPI, relógios por instrução ) e é de cerca de 30 GBPS .


Fig 7 . O gráfico da velocidade de gravação do bloco de dados em seu tamanho;
Bairro X = Tamanho L1

Como pode ser visto nos gráficos, o ponto de inflexão para a leitura L1 corresponde a um valor teórico de 24 kilobytes. Para constar, a política de armazenamento em cache usada neste processador é caracterizada por uma "queda antecipada" na velocidade, que será objeto de um estudo separado. Mas agora pode-se notar - essa política não contribui para registrar indicadores de desempenho, embora em alguns casos seja possível evitar o entupimento de L1 com dados desnecessários.


Os resultados mostram a velocidade desenvolvida por um núcleo do processador Atom x5-Z8350. Vários testes, em particular o AIDA64, mostram o desempenho total de todos os núcleos.


Faremos um pequeno cálculo teórico modelando o pico da taxa de transferência. Para a CPU em estudo, a frequência do relógio no modo Turbo é de 1920 MHz. 128 bits ou 16 bytes são transmitidos em um ciclo de clock:

  • 1920 * 16 = 30720 (cerca de 30 Gigabytes por segundo)

Um contador TSC (Time Stamp Counter) é usado como fonte de intervalos de tempo exemplares. Como o núcleo do processador e o TSC geralmente têm clock de forma assíncrona, os valores dos ciclos de clock do TSC por instrução são valores fracionários.


Verifique se o processador opera no modo Turbo, com base nos valores de frequência indicados na documentação. Um ciclo de clock da frequência central aumentada de 1920 MHz é de aproximadamente 0,521 nanossegundos. Um ciclo de clock da frequência nominal de 1440 MHz, no qual o contador do carimbo de hora opera, é de aproximadamente 0,694 nanossegundos. Para instruções executadas por ciclo, o valor teórico do número de ciclos TSC por instrução (CPI) deve ser

  • 0,521 / 0,694 = 0,750

Os valores medidos exibidos de CPI mínimo entre 0,759 ... 0,776 estão bastante próximos desse valor.


Cache L2


Quatro núcleos do processador em estudo estão divididos em dois grupos, dois núcleos em cada um. O tamanho total do cache L2 é de 2 MB e é dividido igualmente entre eles. A conclusão é óbvia: 1 megabyte de cache L2 está disponível para cada núcleo, cujo acesso é compartilhado com um vizinho do grupo.



Benchmarks de cache L2


A velocidade do cache L2 é o "passo" central que ocorre quando a dupla desigualdade de 24 KB <X <1 MB é observada, quando o bloco de dados processados ​​não é mais colocado em L1, mas ainda em L2.


Fig 8 . Gráfico da velocidade de leitura de um bloco de dados em seu tamanho;
Bairro X = Tamanho L2

Como pode ser visto nos gráficos, uma diminuição na velocidade devido ao esgotamento de L2 ocorre quando o limite de 1 MB é excedido. A capacidade de "emprestar" um cache de um grupo vizinho, tendo movido o momento de diminuição da velocidade para o ponto de 2 MB, não foi encontrada.


Fig 9 . O gráfico da velocidade de gravação do bloco de dados em seu tamanho;
Bairro X = Tamanho L2

A classificação de desempenho do cache de gravação L2 está próxima da leitura: 12 versus 11,5 GBPS. A fundamentação teórica deste resultado será considerada na próxima publicação .

Source: https://habr.com/ru/post/pt413857/


All Articles