Arranjo dual-GPU: o modo x16/x16 realmente faz diferença?

Saudações a todos! Com certeza todos aqueles que possuem um arranjo com duas placas de vídeo em SLI (no caso das Nvidia) ou CrossfireX (nas AMD) já devem ter feito esta pergunta: afinal de contas, ter um SLI ou Crossfire rodando a x16/x16 realmente faz diferença? Este artigo é um complemento do texto sobre a montagem de um arranjo SLI que fiz tempos atrás, e tem a pretensão de fornecer uma resposta à esta pergunta que não quer se calar! 

Placas de vídeo baseadas na GPU Nvidia GeForce GTX 760 que fazem parte do meu arranjo SLI

A escassez de linhas PCI Express

Antes de iniciar as comparações, vou dar uma pincelada rápida sobre o padrão PCI Express àqueles menos versados nos termos técnicos. O PCIE é baseado em linhas de comunicação, onde cada uma delas é um canal de transmissão serial bi-direcional entre o dispositivo e o controlador PCIE, que no caso dos Intel mais recentes fica no próprio processador e nos AMD fica no chip ponte norte presente na placa mãe. Existem dispositivos que usam 1, 4, 8 ou 16 linhas PCIE, sendo chamados de x1, x4, x8 e x16. O padrão PCIE é extremamente flexível - mesmo um dispositivo x16 pode operar a x8, x4 ou até mesmo x1, logicamente com uma possível perda de performance. A foto abaixo monstra alguns exemplos de slots PCIE: x16 (1, 2 e 5), x16 com 8 linhas (3 e 7) e x1 (4 e 6).

Exemplo de slots PCI Express

Atualmente existem três revisões do padrão PCIE (a quarta revisão está no forno). A versão 1.0 permite uma taxa de transferência máxima teórica de 250 MB/s em cada linha de comunicação, enquanto que a 2.0 fornece 500 MB/s e a 3.0 1 GB/s. Logo um dispositivo que opere a x16 no padrão 3.0 teoricamente manipula um volume de 16 GB/s de dados! Usei o termo "teoricamente" pois esta é a taxa máxima teórica, na prática a taxa de transferência é menor devido à própria demanda dos dispositivos ser quase sempre menor e por existirem algoritmos de controle e correção de erros. Os processadores Intel a partir da linha Core de terceira geração suportam o PCIE 3.0, enquanto que todos os chips ponte norte da AMD são 2.0. As revisões são compatíveis entre si: por exemplo, um dispositivo PCIE 3.0 pode ser instalado em um slot 1.0 e vice-versa.


As placas de vídeo, na sua esmagadora maioria, são componentes que usam 16 linhas de dados PCI Express se instaladas em um slot que ofereça esta quantidade de linhas entre o dispositivo e o controlador PCIE. Quando se instala mais de uma placa de vídeo em uma mesma placa mãe, inapelavelmente as placas deverão compartilhar as linhas PCIE destinadas aos slots de expansão. É aí que o bicho pega: na maioria dos cenários, simplesmente não há linhas disponíveis para fornecer 16 canais para cada placa de vídeo e elas acabam ficando com apenas 8 linhas. A tabela abaixo mostra a quantidade de linhas oferecidas pelos produtos mais comuns do mercado (na data em que escrevo, junho de 2014):



Tabela comparativa do número de linhas PCIE

Como podemos ver pela tabela, somente os processadores Intel LGA2011 e o chip ponte norte AMD 990FX oferecem mais do que as 32 linhas PCIE requeridas por duas placas de vídeo x16. Nos demais casos o número de linhas será obrigatoriamente dividido, a não ser que a placa mãe utilize os chamados chips chaveadores.


Os chips chaveadores

Basicamente, um chip chaveador PCIE faz uma ponte entre o dispositivo e o controlador. Ele fornece as linhas PCIE para o dispositivo e realiza o chaveamento entre estas e as linhas que seguem para o controlador PCIE. Desta forma, usando o nosso exemplo, as duas placas de vídeo x16 ficam com 16 linhas cada até o chip chaveador e este faz a interface destas com as linhas que seguem para o controlador PCIE, seja no processador ou no chip ponte norte. A figura abaixo ilustra o conceito:
Funcionamento básico dos chips chaveadores

Recentemente troquei a minha placa mãe por uma Gigabyte Z77X-UP7 que conta com o chip chaveador PLX PEX8747, que oferece 48 linhas PCIE 3.0 (caso o controlador principal também seja 3.0) para as placas de expansão e será com esta placa mãe que farei o comparativo. Uma crítica recorrente aos chips chaveadores é que eles introduziriam uma certa latência durante o chaveamento entre as linhas PCIE - segundo o fabricante do PEX8747, este chip introduz apenas 100 ns (nanossegundos) de latência no processo, que é um número extremamente baixo. Para se ter uma ideia, um nanossegundo equivale a 0,000000001 segundo!



Chip chaveador PCIE PLX PEX8747

Os testes

O sistema de testes consiste basicamente em um Intel Core i7 2600K (que possui controlador PCIE 2.0), placas mãe Gigabyte Z77X-UP7 (x16/x16) e Gigabyte Z68X-UD3-B3 (x8/x8), 16 GB de RAM DDR3-1600 e duas placas de vídeo Nvidia GeForce GTX 760 de 2 GB em SLI. O restante do sistema de testes pode ser visto aqui. Diferenças de desempenho de + ou - 3% não serão consideradas.



Sem grandes diferenças aqui.


No Fire Strike, teste mais "pesado" da última versão do 3DMark, as diferenças foram mais palpáveis com 12% no índice de gráficos.


Aqui também sem grandes surpresas.


No "mundo real", principalmente em jogos como o Hitman Absolution que possuem uma carga absurda de texturas, é que a solução x16/x16 realmente brilha! O que mais chama a atenção nos resultados é o número mínimo de quadros por segundo, que se manteve em 60 garantindo um bom conforto para desfrutar do jogo.


Conclusão

O comparativo entre os arranjos em x8/x8 e em x16/x16 mostrou resultados interessantes, pois acabou se revelando uma das poucas situações onde os ganhos demonstrados pelos benchmarks sintéticos não foram tão impressionantes se comparados com um jogo verdadeiro. Os resultados mostraram que mesmo placas de vídeo intermediárias como a GTX 760 sofrem limitações no desempenho se operarem em uma conexão x8, pelo menos na especificação 2.0 do padrão PCI Express.


Desta forma, caso você tenha um arranjo SLI ou Crossfire ou pretenda montar um, faz sentido investir em placas mãe que ofereçam ao menos 32 linhas PCIE, seja de forma nativa ou com o uso de chips chaveadores. Outra possibilidade é optar por um processador Intel Core de terceira ou quarta geração que possuem controlador PCIE 3.0. Teoricamente este controlador não introduzirá perdas, pois em termos de largura de banda uma conexão 3.0 x8 se equivale a uma 2.0 x16.


Veja também:

Como habilitar o PCI Express 3.0 nos drivers da Nvidia
Usando duas placas de vídeo no modo SLI
A história dos barramentos de expansão do PC (Parte 6 – PCI Express)

Comentários

  1. Essa diferença de FPS no Hitman foi absurda. o_O Acredito que o Thief por ser da mesma produtora aponte os mesmos resultados.

    Já que você tem uma placa-mãe tão provida de PCI-Expresses, bem que poderia testar o x16/x4. =p

    Sempre quis saber se existe mesmo perda em placas mais novas, pois tenho uma GA-B75M-D3H.

    ResponderExcluir
    Respostas
    1. Infelizmente com esta placa mãe não dá para simular uma situação x16/x4 em função do seu chaveador PCI Express: ela roda em x16/x16, x16/x8/x8 ou x8/x8/x8/x8, dependendo do número de placas de video instaladas.

      Excluir
  2. Você reparou em quanto fica o uso do controlador de memória no Hitman? É bem maior que o dos outros jogos, certo? E no Thief (se tiver)?

    ResponderExcluir
    Respostas
    1. É perceptível que o Hitman é um tanto quanto devorador de memória, mas não cheguei a mensurar. Infelizmente não tenho o Thief para testar.

      Excluir
  3. Se quiser responder. http://adrenaline.uol.com.br/forum/showthread.php?p=1071151913

    ResponderExcluir
    Respostas
    1. É uma honra um texto meu ser citado no Adrenaline, mas a dúvida é sobre o PCIE 3.0, neste caso imagino que não haja diferença mesmo. Os meus testes foram feitos quando eu ainda tinha o i7 2600K que tem controlador 2.0, e neste cenário existe diferença. Vou acompanhar o post.

      Excluir
  4. O Hitman com uma placa só em x8 vs x16 dá muita diferença aí?

    Neste teste mudou quase nada: https://www.pugetsystems.com/labs/articles/Impact-of-PCI-E-Speed-on-Gaming-Performance-518/

    ResponderExcluir
    Respostas
    1. Comprei uma GA-Z68XP-UD3 Rev 1.0, que ao contrário da 1.3, tem todos os slots 2.0. Isso é um pouco preocupante.

      Excluir
    2. No PCIE 3.0 não muda nada entre x16 e x8, mas no 2.0 há um pouco de perda no SLI em x8. Porém se você não for fazer SLI/Crossfire não há com o que se preocupar.

      Excluir
    3. Sim, vou fazer de GTX 970 daqui a um mês. Curioso que a BIOS deixa escolher entre PCIE 2.0 X16 e 3.0 X8.

      No teste que o site ali fez não teve perda de desempenho com duas Titan. Por que no seu teve? =o

      Excluir
    4. Minha amostragem foi muito pequena, vai ver pode ter sido alguma bizarrice do Hitman visto que nos outros testes não houve tanta diferença. Além do mais sou um mero hobbysta, os caras do site devem ter dedicação exclusiva. Não tem comparação...

      Pode colocar as duas 970 sem medo de ser feliz e correr pro abraço! Vai ficar muito bom, melhor do que as minhas três 760 sem dúvida.

      Excluir
  5. Tenho uma Z68XP-UD3 (Rev 1.0) e comprei um kit com i7 2700K + Z68XP-UD3 (Rev. 1.3), que suporta PCI-E 3.0. Agora não sei se uso i7 3770 com a 1.3 ou o i7 2700K com a 1.0. :~

    ResponderExcluir
    Respostas
    1. Aliás, comprei o kit ontem por 800 reais. Quero ver que o vendedor vai honrar.

      Excluir
    2. 800 dilmas por um 2700K + placa Z68 foi um preço muito bom mesmo. Tenho vontade de comprar um 2500K/2600K/2700K para colocar na minha Z68X-UD3-B3.

      Excluir
  6. Olá, tenho uma placa H81M-A com um i3 4160 e uma GTX 1060, gostaria de saber se há muita incompatibilidade nessa config, e também, na minha placa mãe tem um slot pcie x16, mas no site da asus diz que é 3.0/2.0, sendo que no canal asus brasil ela é apresentada apenas com 2.0 devido as características do chipset, gostaria de saber mais sobre isso e se todo slot pcie x16 é imbuído com 16 linhas, pois também vi reviews de slots pcie x16 que contém "alimentação" x4, seria isso válido apenas para questão de consumo de energia do dispositivo a ser conectado ou essa "alimentação" corresponde ao número de linhas Pcie?! Obrigado.

    ResponderExcluir
    Respostas
    1. Diz respeito ao número de linhas: existem slots PCIE x16 com apenas 8 ou até mesmo 4 linhas. Embora tais slots permitam que placas x16 sejam instaladas, apenas as linhas PCIE efetivamente conectadas no mesmo serão empregadas.

      O seu i3 é um Haswell, logo conta com uma controladora PCIE 3.0. A Asus H81M-A possui com um slot PCIE x16 com 16 linhas, assim teoricamente a GTX 1060 funcionaria em 3.0 x16. Pesquisei e não encontrei nada sobre a suposta limitação do chipset H81, mas mesmo que funcione no modo PCIE 2.0 não haverá perdas dignas de nota, pode ficar tranquilo.

      Excluir
    2. Poxa cara, muuuuuuuuuuuuuito obrigado man! você não sabe o quanto eu venho quebrando cabeça com isso! me tirou um peso das costas!! valeeeeeeeeeeeu! desculpe a demora pra dar o feedback.

      Excluir
  7. se tiver algum canal no youtube que eu possa me inscrever manda o link ai plz.

    ResponderExcluir
    Respostas
    1. Tenho: https://www.youtube.com/user/Retroware8090
      Muito embora este canal não é atualizado com frequência pois é mais um apoio para hospedar os vídeos do blog.
      Obrigado!

      Excluir

Postar um comentário