Pular para o conteúdo

Cargas de CPU e GPU

Nesta página

PCBenchmarkX executa as suas cargas sintéticas com um volume de trabalho fixo em cada repetição, pelo que podem ser comparadas entre sistemas diferentes. Nestes testes não são usadas gravações de jogos, e os números finais não são iguais a «FPS num jogo específico». O ciclo de medição completo está descrito na metodologia.

Atualmente são usados o motor 0.5.2 e a carga phase4.6-dev-1. A versão deve ser tida em conta: a mudança de cenário torna os resultados de diferentes versões diretamente incomparáveis.

No bloco CPU são criados 65 536 objetos com coordenadas, velocidades e flags. Em cada passo são recalculados o movimento, os ressaltos nas fronteiras e a visibilidade. O thread principal processa primeiro 8 192 objetos seguidos, depois passa a parte restante aos threads de trabalho e, em paralelo, faz a preparação. Em seguida, os threads são sincronizados.

O número de threads de trabalho é escolhido segundo a regra:

workers = clamp(physical_cores − 1, 1, 6)

Se o número de núcleos físicos for desconhecido, é usada uma estimativa pelos processadores lógicos. Os núcleos para os threads não são fixados manualmente. Esta abordagem imita o modelo de um thread «líder» com ajuda limitada, e não uma execução totalmente paralelizada em cada núcleo.

O estado e a ordem de percurso dos objetos são determinísticos. Antes de cada medição da secção CPU, este é reposto e executa 512 frames de preparação fora da contagem, para não arrastar para a série o estado residual da execução anterior.

O determinismo da carga não significa tempo de execução igual: as frequências, a temperatura, o agendador e os processos em segundo plano continuam a influenciar a medição.

A parte GPU funciona através de Direct3D 12. As texturas de trabalho internas têm um tamanho fixo de 1920×1080, independentemente do tamanho da janela e do ambiente de trabalho.

Carga Trabalho computacional O que ajuda a distinguir
Geometry 6 desenhos de cena com 9 216 instâncias e 2 passagens de pós-processamento O processamento de geometria e o fornecimento de trabalho gráfico
Shader 1 desenho de cena, 16 passagens de pós-processamento, parâmetro de complexidade do shader 24 A carga de píxeis e de texturas
Compute Grelha 1920×1080, grupos 8×8, cálculos inteiros com 96 iterações A execução do shader de computação
Combined Simulação CPU e pipeline gráfico fixo O trabalho conjunto de CPU, driver e GPU

Estes são cenários separados com volumes de trabalho diferentes. Por exemplo, 8 000 frames convencionais de Compute não podem ser lidos como 8 000 FPS num jogo nem comparados diretamente com 800 frames de Geometry. Para a união é aplicada a normalização por cenário, descrita no cálculo das pontuações.

As cargas estão escritas num nível de capacidades portável: shader model 5.0 e feature level 11_0 sem extensões de fabricante. O mesmo código é executado em diferentes gerações e fabricantes de placas gráficas, sem um ramo separado para um fabricante específico.

Após as medições, o motor verifica a saída de cada carga GPU: para Geometry, Shader, Compute, Combined e o teste de latência carregado está fixada uma assinatura de controlo — o aspeto esperado de um pequeno fragmento do resultado. O fragmento lido após a conclusão é comparado com o esperado; uma divergência significa que a carga foi executada incorretamente e torna a execução inutilizável. A verificação é realizada após as medições válidas e não influencia os próprios números.

Não há testes separados de velocidade do disco e de largura de banda da RAM neste conjunto. A memória e o driver influenciam a execução das cargas, no entanto o benchmark não calcula avaliações separadas de SSD e RAM.

As cinco cargas de desempenho são executadas em três rondas com alteração da ordem:

Ronda Ordem
1 CPU → Geometry → Shader → Compute → Combined
2 Shader → Compute → Combined → CPU → Geometry
3 Combined → CPU → Geometry → Shader → Compute

O lugar de cada carga na sequência muda de ronda para ronda. Isto reduz a sua influência na comparação. O aquecimento ainda pode alterar os resultados, pelo que, para os blocos, são adicionalmente guardados a dispersão da velocidade de execução e a sua alteração do primeiro bloco para o último.

Para a avaliação do cenário é usada a média aritmética do throughput dos seus três blocos. A mediana e a média geométrica dos blocos podem ser consultadas como diagnóstico adicional, mas o indicador final continua a basear-se nessa média.

Porque é que a baixa resolução não facilita o teste principal

Seção intitulada “Porque é que a baixa resolução não facilita o teste principal”

As cargas CPU, GPU e Combined são executadas fora do buffer de ecrã. O seu caminho de envio de comandos não provoca Present e não espera pela limitação da fila de apresentação. As texturas internas permanecem 1920×1080, mesmo que o ambiente de trabalho esteja mudado para 800×600.

A interface e o teste de latência funcionam através de um caminho de saída separado. Por isso, a mudança da resolução do ambiente de trabalho, por si só, não facilita a própria carga. Ainda assim, não se pode ler um resultado «absolutamente igual» em qualquer resolução: no troço de saída participam o driver e o estado atual do sistema.

Uma verificação prática com 1920×1080, 1280×768 e 800×600 é apresentada no artigo sobre a repetibilidade.

Verificado para a implementação descrita: 2026-09-20.