GDH Press: Blog » Tudo sobre o SLI, CrossFire e CrossFireX
 
RSS

Tudo sobre o SLI, CrossFire e CrossFireX

Publicado em 13/10/2009 – 18:37
por Carlos Morimoto

As primeiras placas a suportarem o uso do SLI (nesse caso ainda o antigo "Scan Line Interleave") foram as placas Voodoo 2 da 3dfx, que utilizavam um sistema primitivo, onde as duas placas eram alimentadas com os mesmos dados e uma delas renderizava as linhas pares e a outra as linhas ímpares de cada frame. Um cabo pass-thru interligava as duas placas, através do próprio conector VGA, permitindo que a imagem final fosse gerada e enviada ao monitor.

A 3dfx acabou indo à falência no final do ano 2000 e a propriedade intelectual relacionada a seus produtos foi adquirida pela nVidia. Isso permitiu que o SLI ressurgisse como uma tecnologia para interligar duas placas nVidia, dividindo o processamento e assim aumentando o desempenho. Mais tarde a ATI desenvolveu um sistema próprio, o CrossFire, dando início à briga.

Nas Voodoo 2, SLI era a abreviação de "Scan-Line Interleave", mas nas nVidia o significado mudou para "Scalable Link Interface", indicando as mudanças no funcionamento do sistema, onde a comunicação entre as placas passou a ser feita através de bridges e não mais através do cabo VGA como na época da Voodoo:

sli-crossfire_html_m6fbfdaaa

Inicialmente a nVidia tentou usar o SLI como um recurso estratégico para diferenciar seus chipsets, se recursando a licenciar a tecnologia para uso em chipsets da Intel e da AMD. Isso acabou restringindo muito o uso do sistema (especialmente no Brasil), já que as placas-mãe com chipset nVidia respondem por apenas uma fração das placas vendidas e são quase sempre mais caras.

A nVidia mudou um pouco a estratégia a partir do Core i7, passando a licenciar o uso do SLI para placas baseadas nos chipsets X58 e P55. Ainda existem restrições, entre elas a falta de suporte a configurações assimétricas nos slots PCIe (o que deixa de fora as placas que utilizam 16 linhas placas o primeiro slot e 4 linhas para o segundo) e a necessidade de o fabricante certificar cada nova placa junto à nVidia (parando uma taxa de US$ 30.000 pela certificação e mais US$ 3 de royalties por placa), mas já foi uma evolução em relação à postura anterior. Por outro lado, ainda não existem (final de 2009) notícias com relação ao uso do SLI em chipsets da AMD/ATI, o que mantém a plataforma refém dos chipsets da nVidia.

O suporte a SLI consiste em nada mais do que uma flag no BIOS que orienta os drivers a ativarem o recurso. Ao pagarem os royalties e processo de certificação, os fabricantes de placas-mãe simplesmente recebem permissão para incluir a flag e usar os logos.

Isso nos leva a outro problema com relação ao uso do SLI como solução de upgrade barato. Raramente existe a possibilidade de adicionar uma segunda placa de baixo custo complementando a que você já tem, já que a decisão precisa ser tomada na hora em que você escolhe a placa-mãe.

Tecnicamente, não existe qualquer obstáculo para o uso do SLI em qualquer placa com dois slots PCIe x16, trata-se mesmo apenas de uma política restritiva da nVidia. Pesquisando é possível inclusive encontrar versões crackeadas de drivers antigos, que permitem ativar o SLI em outras placas, embora com muitas limitações.

A solução para quem não quer pagar mais caro pela placa-mãe é comprar uma placa com duas GPUs, como a GeForce GTX 295 ou a GeForce 9800 GTX2. Nelas a comunicação entre as duas GPUs é feita internamente, o que permite que a placa use um único slot PCIe x16 e funcione em qualquer placa-mãe.

Continuando, os bridges SLI são fornecidos junto com as placas-mãe compatíveis, que acompanham os bridges SLI para os modos suportados (e não com as placas de vídeo), mas é possível também comprá-los separadamente.

sli-crossfire_html_268b726f

Toda a comunicação entre as duas placas é feita diretamente e apenas a primeira placa é ligada ao monitor. A segunda fica fazendo seu trabalho silenciosamente, recebendo tarefas a processar e devolvendo quadros já renderizados. Os drivers são capazes também de detectar monitores plugados às outras placas, permitindo usar até 6 monitores em uma configuração triple-SLI.

A exceção fica por conta das GeForce 6600, 6600 LE, 7100 GS e outras placas low-end, que podem trabalhar em SLI sem o uso do bridge. Como essas placas usam pouca banda, toda a comunicação pode ser feita diretamente através do barramento PCI Express.

Com relação ao suporte por parte das placas de vídeo, basta verificar a presença dos conectores. O uso de um único conector indica o suporte ao uso de duas placas, enquanto dois conectores atestam que a placa suporta também o uso do triple-SLI e quad-SLI, que pode ser usado nas placas-mãe que oferecem múltiplos slots:

sli-crossfire_html_19b0ee70

Inicialmente todos os bridges SLI eram rígidos, com os dois conectores sendo presos a um pequeno PCB, mas eles logo foram substituídos por cabos flexíveis. Temos também os bridges triple-SLI e quad-SLI, que possuem (respectivamente) seis e oito conectores (dois para cada placa). Eles são capazes de criar um barramento duplo de comunicação, ampliando o barramento de comunicação entre as placas.

sli-crossfire_html_5e00712

sli-crossfire_html_m528e238

Sob vários pontos de vista, usar duas placas em SLI é similar a usar um processador dual-core. Embora títulos otimizados ofereçam um grande ganho de desempenho, muitas vezes próximo do dobro, a maioria apresenta ganhos menores, de apenas 50 a 70%, e muitos jogos antigos apresentam ganhos muito menores, ou até mesmo uma pequena perda.

Outra observação importante é que os ganhos mais expressivos são obtidos em resoluções mais altas (1920×1200 ou mais), onde o grande número de pixels permite que o trabalho seja distribuído de maneira mais eficiente entre as placas. Se você usa um monitor de resolução mais baixa, usar uma única placa de configuração superior vai resultar em melhores resultados em quase todos os casos.

Com poucas exceções, também não faz muito sentido comprar duas placas medianas pensando em ligá-las em SLI para obter o desempenho de uma placa high-end. Quase sempre, as linhas são criadas com aumentos geométricos no número de unidades de processamento das placas low-end para as mid-range e delas para as high-end, criando uma escalada onde o desempenho cresce de maneira mais ou menos proporcional ao preço.

A GeForce GTS 250, por exemplo, possui apenas 128 stream processors, enquanto a GTS 275 possui 240 e utiliza um barramento bem mais largo com a memória, resultando em um desempenho cerca de 80% superior. Em algumas épocas era possível comprar duas GTS 250 pelo preço de uma única GTS 275, mas o desempenho em SLI não era vantajoso, já que as duas 250 em SLI perdem para a 275 por uma boa margem na maioria das situações.

Isso faz com que o uso do SLI acabe ficando restrito a quem realmente quer o melhor desempenho possível e está disposto a pagar caro por isso. Salvo raras exceções, não vale muito à pena tentar usar duas placas antigas com o objetivo de atingir o desempenho de uma placa mais atual, pois, mesmo combinadas, elas acabarão oferecendo um desempenho inferior ao da placa de geração superior e custando mais caro.

É importante também colocar na conta o custo da placa mãe (já que as placas com suporte a SLI são quase sempre modelos mais caros, destinados a entusiastas) e também o gasto adicional com a fonte de alimentação (já que você precisará de uma fonte de maior capacidade).

Continuando, para que o SLI seja ativado em cada game é necessário o uso de um profile, que inclui as configurações necessárias. Sem o profile, o game roda sem tirar proveito do SLI.

O driver da nVidia incorpora um conjunto de profiles com as melhores configurações para um número relativamente grande de títulos (a lista está disponível no SliZone). Eles são aplicados automaticamente ao rodar títulos oficialmente suportados. Para os demais, você deve criar um profile manualmente, especificando o modo SLI desejado.

Não é obrigatório utilizar duas placas idênticas para ativar o SLI. Embora não seja uma solução exatamente livre de falhas, é possível usar duas placas de fabricantes diferentes, desde que elas sejam baseadas no mesmo chipset. Você poderia utilizar uma GeForce 8800 GTX em conjunto com uma 8800 GTS, por exemplo, já que ambas são baseadas no mesmo chipset, o G80. Em muitos casos, você pode encontrar incompatibilidades diversas ao usar placas de diferentes fabricantes, mas em outros tudo funciona como esperado.

O problema em utilizar duas placas diferentes em SLI é que o driver precisa "nivelar por baixo", reduzindo o clock da placa mais rápida e desativando a memória adicional, de forma que as duas placas ofereçam o mesmo volume de processamento e de memória de vídeo. Entretanto nada impede que você resolva o problema "na marra" fazendo um overclock na placa mais lenta.

Uma observação com relação à quantidade de memória é que ambas as placas precisam trabalhar nos mesmos frames, o que implica conservar o mesmo conjunto de dados na memória. Com isso, ao usar duas placas de 512 MB em SLI, você continua com apenas 512 MB de memória para todos os fins práticos.

O CrossFire é a resposta da ATI ao SLI. Embora as duas tecnologias não sejam relacionadas e o funcionamento interno seja diferente, a necessidade acabou fazendo com que as soluções adotadas pelos dois fabricantes fossem bastante similares.

Assim como no caso do SLI, o CrossFire é fortemente dependente do trabalho dos drivers, que precisam bipassar funções e ativar otimizações diversas para que o CrossFire possa ser usado de maneira transparente mesmo em jogos que não foram desenvolvidos com ele em mente.

Inicialmente a ATI optou por tentar uma abordagem simplificada, fazendo com que o Catalyst aplicasse o CrossFire automaticamente em todos os jogos, sem necessidade de utilizar profiles como no caso do SLI, mas os problemas de compatibilidade fizeram com que adotassem um meio-termo, utilizando profiles para alguns títulos e utilizando o sistema automático para os demais. O CrossFire pode ser também ativado e desativado através do Catalyst Control Center sem necessidade de reiniciar, o que permite que ele seja desativado rapidamente no caso de problemas com títulos específicos.

O CrossFire passou por duas grandes mudanças desde sua introdução em 2005. A versão inicial (encontrada nas Radeon x800, x850, x1800 e x1900) utilizava um sistema deselegante, onde a comunicação entre as placas era feita através de um cabo DVI em Y e a primeira placa (master) incluía um conjunto de controladores adicionais (5 chips no total, que formavam a "Compositing Engine"), encarregados de compor os frames a partir dos pedaços renderizados pelas duas placas:

sli-crossfire_html_77ab3c9f

Como os chips adicionais formavam um conjunto relativamente caro, a ATI optou por criar versões separadas das placas. De um lado tínhamos as placas "normais", que podiam ser usadas em modo single, ou como placa secundária e do outro tínhamos as placas "CrossFire Edition" (com os controladores adicionais e o cabo Y) que assumiam a função de placa primária. Removendo o cooler de uma CrossFire Edition, você encontrava o conjunto com os 5 chips:

sli-crossfire_html_75fc10e4

Naturalmente, as CrossFire Edition eram mais caras e mais difíceis de encontrar (sobretudo aqui no Brasil) o que, combinado com a pequena lista de placas suportadas, tornava o CrossFire uma solução de uso bastante restrito.
A partir das RADEON X1950 Pro e X1650 XT, a ATI introduziu uma solução mais elegante, onde as duas placas trocam informações através de um par de bridges, muito similar ao usado nas placas da nVidia:

sli-crossfire_html_27fc449a

Todos os circuitos necessários foram incorporados diretamente ao chipset, eliminando o uso das placas CrossFire Edition. A ATI também inovou ao adotar o uso de bridges flexíveis, que mais tarde acabaram sendo adotados também pela nVidia.

A partir da Radeon HD 3870 (baseada no chipset RV670), foi introduzido o suporte ao uso de três e quatro GPUs, o que deu origem ao CrossFireX usado atualmente:

sli-crossfire_html_66f8bd5b

As placas continuam oferecendo os mesmos dois conectores, mas agora o segundo bridge é destinado à conexão de placas adicionais, como na foto. Ao interligar apenas duas GPUs, você precisa de apenas um bridge (o segundo bridge é utilizado caso conectado, mas a diferença no desempenho é insignificante).

Entretanto, a principal vantagem do CrossFire em relação ao SLI não tem a ver com os aspectos técnicos, mas sim com a disponibilidade. Diferente da nVidia, que usa o SLI como uma fonte adicional de renda e como um diferencial para seus chipsets, a ATI tem sido bem mais liberal no licenciamento do CrossFire, permitindo que ele seja usado sem pagamento de royalties também em chipsets Intel.

Graças a isso, praticamente todas as placas com dois slots x16 baseadas X38, P35, P45, P55 e outros chipsets atuais oferecem suporte ao CrossFire (incluindo muitas placas de baixo custo) enquanto o SLI é suportado por apenas algumas high-end, fazendo com que na prática o uso seja muito restrito.

Diferente do SLI, que exige o uso de duas placas de mesmo modelo e com os mesmos clocks e quantidade de memória (reduzindo o clock da placa mais rápida, ou desativando parte da memória em caso de divergência), o CrossFire oferece uma certa flexibilidade com relação às placas, permitindo que você use duas GPUs da mesma família porém com clocks diferentes. Entretanto, nesses casos o ganho de desempenho será um pouco menor.

Outra observação importante é que a nVidia exige o uso de slots com 16 ou 8 linhas PCI Express (x16, x16 ou x8, x8), enquanto a ATI permite o uso de configurações assimétricas, como no caso de muitas placas P55, onde o primeiro slot recebe 16 linhas e o segundo apenas 4 (x16, x4). Embora flexibilidade seja sempre uma coisa boa, você deve ter em mente que configurações assimétricas oferecem um desempenho inferior, já que as 4 linhas limitam o desempenho da segunda placa:

sli-crossfire_html_m3f08a604

O principal empecilho é que o bridge para uso do CrossFire raramente é fornecido junto com a placa-mãe (afinal, você não paga nada a mais para ter acesso à função, diferente do SLI). Algumas placas high-end incluem o bridge, mas o mais comum é mesmo comprá-lo separadamente. No exterior ele custa em média US$ 12 (você pode até mesmo comprá-lo diretamente da ATI), mas no Brasil os preços variam.

sli-crossfire_html_m10a6ea89

Além das placas e bridges, existem fontes e até módulos de memória certificados para uso do SLI ou CrossFire. No caso das fontes a certificação garante que elas são capazes de fornecer a corrente necessária, enquanto no caso das memórias ela é uma garantia de estabilidade. Naturalmente, em ambos os casos trata-se mais de uma questão de marketing, já que outras fontes ou módulos com as mesmas especificações fornecerão exatamente os mesmos resultados.

» Mais posts

  1. 16 respostas para “Tudo sobre o SLI, CrossFire e CrossFireX”

  2. Thiago em 13 out, 2009

    Amei o artigo. Eu realmente queria entender um pouco mais sobre o assunto e aprender sobre as diferenças das arquiteturas. Uma dúvida que ficou é: nas placas NVIDIA ao usar duas placas em SLI com 512MB de memória, a memória final continuará sendo 512MB? A memória da segunda placa não é aproveitada? E no caso do CrossFireX da AMD/ATI acontece a mesma coisa?

  3. Moop em 13 out, 2009

    Morimoto, nesta sua série de artigos sobre placas de video você vai escrever sobre os chips Lucid Hydra?

    No mais, tem um pequeno erro de digitação no artigo que nem sei se vale a pena ser comentado:
    (parando uma taxa de US$ 30.000 pela certificação e mais US$ 3 de royalties por placa)
    seria "pagando uma taxa".

  4. rodrigoPanda em 13 out, 2009

    Totalmente excelente, obrigado pelo artigo.

  5. Pinguim-Fu em 13 out, 2009

    Respondendo a duvida do primeiro amigo ai em cima

    a memoria continua a mesma ja que as duas placas precisam carregas os mesmos dados na memoria para trabalhar em cima do mesmo frame e em seguida unir as partes que cada uma processou

    entao de nada adianta voce ir armazenando mais dados se nao sobrar espaço para o que ela precisa processar no momento

    por isso que na pratica a quantidade de memoria disponivel é a mesma

    no mais é mais um otimo artigo para a colecao morimoto

    Parabens

  6. rizzini em 14 out, 2009

    Thiago

    isso foi explicado no artigo…

  7. romulopfarias em 14 out, 2009

    Boa tarde Morimoto, mais um excelente artigo!
    Gostaria de tirar uma dúvida: Porque simplesmente não é feito igual na época das Voodoos? Divide o processamento por linhas, ou então por "metades"?

    No caso o driver só vai ter a função de dividir a tela enviada pelo jogo, no número de placas, e enviar pra cada uma fazer o processamento. No caso do Crossfire, o proprio driver poderia efetuar calculos pra saber qual o atraso de uma placa pra outra (por poderem ser assimetricos os barramentos e modelos de placas), de modo a escalonar o que vai ser enviado (60% pra uma placa e 40% pra outra, por exemplo). Dessa forma, o trabalho do driver seria relativamente simples, todos os jogos seriam compativeis automaticamente, tirando o melhor possivel dos gráficos (pois o driver que iria escalonar somente as linhas ou partes da tela a serem renderizados), e realmente daria um ganho independente do modelo da placa, podendo ser colocadas placas diferentes de forma a sempre haver algum tipo de ganho…

    Abraços e continue mantendo a ótima qualidade dos artigos!

  8. Carlos Morimoto em 14 out, 2009

    A Voodoo utilizava um sistema de composição analógica, que resultava em uma perda considerável de qualidade de imagem em altas resoluções. Era uma solução simples e que funcionava bem na época, mas seria antiquado demais para uso em uma placa atual, levando em conta que já temos sistemas digitais mais eficientes e até mesmo mais baratos.

    O grande problema no caso dos drivers é fazer com que os jogos sejam capazes de utilizar eficientemente a capacidade da segunda GPU no processamento de shaders e aplicação de efeitos diversos, que são realizados antes da etapa de renderização (a composição das imagens acaba sendo uma das etapas mais fáceis). Na época da Voodoo 2 as coisas eram mais simples. :)

  9. romulopfarias em 14 out, 2009

    Entendi. No caso, se fosse utilizado o conceito das Voodoos, mas por meios digitais e mais atuais? Fico vendo esses conceitos novos, de placas paralelas, processadores paralelos, mas nunca o desempenho é o que se espera… Tenho em mente que esse tipo de tecnologia só irá funcionar a contento, quando os fabricantes fizerem uma "camada de abstração", do tipo: O jogo envia os gráficos para o driver, independente de quantas placas existem; o driver recebe a ordem e escalona para as placas e depois envia para o monitor. Pois se for ficar esperando as fabricantes de softwares implementarem melhoras nos jogos pra utilizarem os recursos, ficaremos na mão…

    Ninguem deixa de jogar um jogo, por ele ser pesado.. Mas as pessoas deixam de comprar uma placa, se aquele jogo pesado rodar melhor na concorrente…

    Me parece tão simlpes a ideia: Se você tem uma tela a ser processada em 1680 x 1050, em uma configuração SLI (onde as placas tecnicamente são idênticas), o driver manda o primeiro 1680 x 525 pra primeira placa processar e aplicar os filtros e texturas, e os outors 1680 x 525 pra segunda placa.

    Ou então o driver realizaria um "benchmark interno" (logo, poderia ser bem real e honesto), com as placas integrantes do SLI / Crossfire, para determinar quantos % uma processa mais rápido que outra, de modo que, se a primeira placa (uma 4870 ligado num slot x16) processa mais rápido que a segunda (uma 4850 ligada num slot x4), então digamos que a proporção é de 3/1.. Então o driver mandaria 75% da tela pra ser renderizada pela primeira placa, e 25% pra segunda, e os ganhos seriam alcançados. Que problemas existem para que uma coisa desse tipo seja aplicada na prática?

    Fico muito honrado de ter o comentário respondido por você, Morimoto!

  10. Fausto em 15 out, 2009

    Muito bom, agora não vou ficar boiando quando falam desse assunto por aí! :-)

  11. Jotah em 15 out, 2009

    Seguindo o raciocinio do colega, romulopfarias, isso seria um trabalho para o directx e ou opengl, mas até que a microsoft ou o Khronos Group, implementem essa tecnologia em suas respectivas api's (e ainda levando em conta a morosidade da microsoft e o atual abandono ao opengl, que é muito genérico e não direcionado a jogos como é o dx, por parte das produtoras de jogos) e as produtoras de jogos passem a otimizar seus jogos para utilizarem esses recursos… Talvez lá por 2015-2020 tenhamos algo utilizavel nesse sentido. Ahh se o directx fosse open source.
    Desculpem-me os erros. Grande post, como sempre, Morimoto.

  12. Cleber em 15 out, 2009

    Ótimo artigo, Morimoto. Só senti falta de algo sobre o Crossfire com o vídeo onboard dos AMD 780/785/790.

  13. Thiago em 16 out, 2009

    Obrigado pelo esclarecimento, Pinguim-Fu. Achei muito interessante o funcionamento desse recurso.

    E eu li o artigo inteiro, Rizzini, porém resolvi perguntar porque aquela informação não estava totalmente clara para mim.

  14. Cristiano Guimarães em 17 nov, 2009

    Caros amigos,
    fiz um investimento pesado em hardware no último mês e francamente o desempenho me decepciona um pouco. Vejam bem: comprei um processador Phenom II 955, 8GB RAM DDR3 1333 OCZ, 2 Placas de Video ATI RADEON HD 4890 (crossfire) e a placa-mãe ASUS M4A79-T DELUXE. Uso no monitor uma resolução de 1680×1050 e é nessa resolução que jogo meus games. Pois bem, jogando o novo Need for Speed Shift, com tudo no máximo (Anti-analising, texture filter, etc) de vez em quando ainda dá umas travadinhas, ou seja, por mais que vc gaste dinheiro com hardware NUNCA será suficiente. Não sei se com um driver mais novo do que o atual até melhoraria o desempenho, mas mesmo assim, quem compra um equipamento destes não está afim de conviver com nenhum lag. Um abraço a todos e parabéns MORIMOTO pelo excelente trabalho ao longo dos anos, se tornando referência absoluta no Brasil.

  15. José em 27 abr, 2010

    Muito bom o artigo, as GPUs estão evoluindo de uma maneira impressionante, bem como o preço das placas de vídeo, rsrs. Ficou bem explicativo, bom para não ficar por fora depois.

  16. vemag em 17 ago, 2010

    Para quem já teve um pc com placa de vídeo e uma aceleradora 3D, a solução crossfire (com o cabo em Y na saida) chega a ser nostálgica. Nunca gostei da nVidia (por esse motivo meu segundo pc usava uma Voodoo 5 5500), e continuo não gostando (para mim foi uma delícia os problemas que os chipsets nForce tiveram com a entrada da nVidia no mercado de chipsets para MB). Montar um sistema em SLI topo de linha é pura ostentação, em geral o desempenho é inferior ao da concorrente, e serve apenas para dizer que se gastou mais para montar o pc.

  1. 3 Trackback(s)

  2. out 22, 2009: GDH Press: Blog » Over em placas 3D: BIOS overclock

Comente: