Índice das dicas

Placas da ATI: o RV770 e as Radeon HD4850/4870

Por Carlos E. Morimoto em 19 de agosto de 2009 às 20h15

15

A estratégia clássica dos fabricantes ao desenvolver uma nova GPU é produzir um chip com um grande volume de unidades de processamento e todos os outros recursos necessários, criando uma nova família de placas high-end e, com o tempo, produzir versões de baixo custo no mesmo chip, criando as linhas de placas intermediárias e de baixo custo, usando versões do chip com componentes desativados, ou passando a produzi-lo usando uma nova técnica de produção.

O grande problema com essa estratégia é que (assim como no caso dos processadores) chips muito grandes resultam em altos custos de produção e em um alto índice de defeitos, que tornam o custo unitário ainda mais alto.

Os fabricantes conseguem remediar o problema parcialmente através do die-harvesting, onde chips com defeitos localizados têm parte dos stream processors ou outros componentes desativados (como é o caso das GeForce GTX 260 e 216SP), mas mesmo assim as perdas são grandes. Outro problema com a produção de chips muito grandes é o consumo elétrico, que rapidamente se tornou um problema tão grande nas GPUs quanto nos processadores.

Depois dos problemas com o R600, a ATI decidiu mudar um pouco a estratégia, passando a produzir chips relativamente pequenos, otimizados para oferecerem uma melhor relação em termos de área útil, consumo elétrico e desempenho, com chips relativamente pequenos, porém mais baratos e capazes de atingir frequências de clock maiores.

Em vez de tentar produzir a placa mais rápida do mercado, o objetivo passou a ser criar placas mais baratas, que permitam atingir o mercado mainstream (onde se concentra a maior parte das vendas) e oferecer a possibilidade de combinar duas ou mais placas em CrossFire como a solução para os entusiastas. Surgiu então o RV770, que acabou se tornando um dos chips de maior sucesso da ATI.

O RV770 possui 959 milhões transístores (mais do que um Phenom II) e está longe do que poderíamos chamar de um chip pequeno. Entretanto, ele é bem menor que o GT200 (que possui 1.4 bilhões) o que colocou a ATI em vantagem com relação aos custos de produção, já que tinha em mãos um chip muito menor.

Essa vantagem inicial foi exacerbada pelo uso de uma técnica de produção de 55 nanômetros (contra os 65 nm usados pela nVidia na série inicial do GT200). Curiosamente, o RV770 foi ainda produzido nas fábricas da TSMC (assim como as GPUs anteriores da ATI) e não nas fábricas da AMD.

Embora pareça pequeno em relação ao GT200, o RV770 é muito maior que o R600 e é composto por nada menos do que 800 unidades de processamento (contra as 320 do antecessor) que são organizadas 10 SIMD cores, cada um composto por 16 clusters com 5 unidades de processamento cada um.

Por questões de marketing, a AMD prefere chamar as unidades de processamento de "stream processors", dando a entender que o RV770 possui bem mais poder de fogo que o GT200 (com seus 240 stream processors), mas na prática a arquitetura dos dois chips é bem diferente, o que dificulta uma comparação direta.

Como comentei, as 800 unidades de processamento do RT770 são agrupadas em clusters de 5. As unidades de processamento se dividem em dois grupos: unidades simples, que são capazes de executar instruções de soma e unidades complexas, que são capazes de executar somas e multiplicações de dupla precisão. Cada cluster inclui 4 unidades simples e uma unidade complexa, que compartilham o mesmo bloco de registradores, operando essencialmente como uma única unidade:

rv770_html_m1e3029ef

As 5 unidades dentro de cada cluster precisam obrigatoriamente trabalhar em instruções dentro do mesmo thread, o que faz com que o desempenho em relação às placas da nVidia varie muito, de acordo com o tipo de processamento e o nível de otimização do software. Em resumo, temos situações em que cada cluster processa uma única instrução por ciclo (pior cenário) e situações em que cada um processa 5 instruções por ciclo, com a média variando muito de acordo com o tipo de operação predominante.

Outra questão importante é que as unidades de processamento do GT200 trabalham ao dobro do clock da GPU, enquanto que no RT770 (assim como no R600) eles operam na mesma freqüência do restante do chip. Com isso, temos 480 (2x 240 SPs) instruções por ciclo no GT200 e de 160 a 800 instruções no RT770, o que explica o por que de o desempenho dos dois chips não ser tão diferente quanto poderia parecer à primeira vista.

Continuando, ao combinar 16 destes clusters (80 unidades de processamento no total), temos um SIMD core, que é o bloco básico de construção do RV770. Cada SIMD core possui um bloco de memória de 16 KB, que é usado como uma espécie de cache, útil especialmente ao compartilhar dados entre diferentes threads. O RV770 possui 10 SMID cores, que formam o bloco central de processamento do chip, que é alimentado por um cache de dois níveis:

rv770_html_m7e4e0c7a

As unidades de processamento fazem par com 10 unidades de processamento de texturas, que resulta em uma potência bruta de 40 texels por ciclo de clock, o que é um valor respeitável, mas que é apenas metade dos 80 texels por ciclo oferecidos pelo GT200. Isso faz com que, de uma maneira geral, o RV770 se saia melhor em jogos que utilizam um grande volume de shaders e processamento em geral, mas acabe perdendo em jogos que fazem uso intensivo de texturas.

Um dos segredos para um aumento tão grande no número de unidades de processamento de shaders e texturas do chip, sem que fosse necessária um aumento proporcional na área do chip foi a substituição do ring bus do R600 por um layout mais tradicional, baseado no uso de um hub de dados, que faz a interface entre os componentes do chip.

Embora ofereça menos banda de transferência que o ring bus, o hub de dados ocupa uma área muito menor no chip (área que foi redistribuída entre os demais componentes) e consome muito menos energia no processo de mover os dados de um componente ao outro, contribuindo para a redução no consumo elétrico do chip.
Outra grande vantagem competitiva do RV770 é o suporte à memória GDDR5 que oferecem o dobro da taxa de transferência por pino que as memórias GDDR3 usadas nas placas da família GTX 2xx da nVidia e também nas placas das séries HD 2xxx e HD 3xxx.

As memórias GDDR5 operam de maneira bastante similar às memórias DDR3, com 8 transferências por ciclo, mas com otimizações voltadas para o uso em placas de vídeo, com suporte a frequências mais altas e tempos de latência mais baixos. As memórias GDDR3 são por sua vez, baseadas nas memórias DDR2, com quatro transferências por ciclo.

Na época em que o RV770 estava sendo desenvolvido, a especificação das memórias GDDR5 ainda não estava finalizada, por isso a adoção da tecnologia foi uma aposta arriscada, mas que acabou rendendo frutos, permitindo que o RV770 utilizasse uma interface de apenas 256 bits (o que contribuiu para o barateamento das placas), mas possuísse um barramento com a memória similar ao que teria aso utilizasse um barramento de 512 bits e memórias GDDR3.

rv770_html_10e83617

Apesar disso, o alto custo inicial fez com que a ATI reservasse as memórias GDDR5 à Radeon HD 4870, optando pelo uso de memórias GDDR3 regulares na HD 4850. Para tornar a configuração um pouco mais equilibrada (evitando que o acesso à memória se tornasse um gargalo), a HD 4850 usa chips de 993 MHz, contra os 900 MHz da 4870, o que resulta em uma banda total de 63.6 GB/s, contra os 115 GB/s da irmã maior:

ATI Radeon HD 4870: 800 SPs, 512 MB, 1 GB ou 2 GB de memória GDDR5, bus de 256 bits, clocks de 750 MHz (GPU) e 900 MHz (3.6 GHz efetivos) para a memória. TDP de 160 watts.

ATI Radeon HD 4850: 800 SPs, 512 MB, 1 GB ou 2 GB de memória GDDR3, bus de 256 bits, clocks de 625 MHz (GPU) e 993 MHz (1.98 GHz efetivos) para a memória. TDP de 110 watts.

Na prática, o desempenho médio da HD 4850 é cerca de 25% inferior ao da 4870, mas ela é limitada pelo acesso à memória bem antes que a irmã maior, fazendo com que reduzir a qualidade das texturas nas configurações tenha um impacto muito maior no FPS.

Na época de lançamento, a 4870 era vendida por US$ 299 no exterior, 50% mais cara que a 4850, que era vendida por US$ 199. Isso colocou as duas placas em uma posição bastante vantajosa em relação às placas da nVidia, cujas concorrentes diretas eram a GTX 260 e a GTX280 (duas placas originalmente bem mais caras), o que obrigou a nVidia a reduzir os preços e a acelerar o lançamento das placas baseadas no GT200b.

Inicialmente, a ATI não lançou nenhuma concorrente direta para a GTX 295, incentivando em seu lugar o uso de duas HD 4850 ou 4870 em CrossFire. Entretanto, não demorou para que lançassem a série X2, composta por versões dual-GPU das duas placas, que compartilham o mesmo slot PCI Express. O desempenho é igual ao que teria ao usar duas GPUs em uma placa-mãe com dois slots PCIe x8, mas elas oferecem a vantagem de serem utilizáveis em placas com um único slot x16:

ATI Radeon HD 4870 X2: 2x 800 SPs, 2x 512 MB ou 2x 1 GB de memória GDDR5, bus de 256 bits, clocks de 750 MHz (GPU) e 900 MHz (3.6 GHz efetivos) para a memória.

ATI Radeon HD 4850 X2: 2x 800 SPs, 2x 512 MB ou 2x 1 GB de memória GDDR3, bus de 256 bits, clocks de 625 MHz (GPU) e 993 MHz (1.98 GHz efetivos) para a memória.

rv770_html_m5de66777

15 comentáriosPor Carlos E. Morimoto. Revisado 23 de março de 2011 às 12h41

Comentários

 
por Eden (anônimo) em 25 de novembro de 2009 às 00h26
Tenho uma hd2400 no notebook e jogo tranquilo os jogos nativos 3d do linux no ubuntu 8.10 - 9.10

Tive que instalar o driver proprietário para isso. O compiz realmente nao funciona bem.
 
por morfetico (anônimo) em 30 de agosto de 2009 às 19h02
Eu sempre tive a nvidia como top das placas, mas encontrei minha primeira experiencia com a ati hd 4830 512MB como opção melhor de compra em relação à nvidia 9800, as ati da linha 4800 todas possuiem tecnologia 45nm enquanto as nvidia são 65nm,desconfiado antes de comprar procurei sobre problemas de fabricação e não encontrei ninguem reclamando das ati,vou trocar ainda este mes para a hd 4870 ou hd 4890 de 1GB por motivo de não conseguir rodar crysis com mais de 20fps em 8x tudo no maximo 1440x900 mesmo sem dar lag eu quero ver pelo menos 30 ou 40 fps e gta4 alcançar mais de 68 no ajuste de profundidade. Estes são os unicos jogos que notei que essa placa deixou um pouco a desejar, os demais jogos TODOS rodam como se nada tivesse acontecendo(call of duty 5 roda a 80fps)eu recomendo ati ,provavelmente eu nunca mais compro uma nvidia.
 
por Gustavo (anônimo) em 22 de agosto de 2009 às 00h16
> Tenho duas 4870 em crossfire [...]

Bom, aí eu já acho que é matar passarinho com canhão :) Não duvido nem um pouco que funcione bem, mas não tenho intenções (nem condições) de pagar duas placas.

> Mas ainda vejo relatos de grande incompatibilidade de Wine + fgrlx.

Esse é o meu medo: gastar R$500 ou mais em placa + fonte e no final descobrir que os jogos que eu quero não funcionam pelo Wine tão bem quanto eu gostaria. Já que é para gastar, prefiro gastar de forma mais segura ;)
 
por Manco (anônimo) em 21 de agosto de 2009 às 14h35
Falando por mim:
Tenho duas 4870 em crossfire e tanto o desempenho no Windows XP quanto no Linux (Gentoo) é ótimo. Testei FEAR 2 via Wine sobre o Compiz + KDE 4.2.4 e o desempenho foi excelente (sinceramente não poderia esperar melhor), vou postar um vídeo no Youtube.
Mas ainda vejo relatos de grande incompatibilidade de Wine + fgrlx.
O desenvolvimento dos drivers não está parado conforme um comentário acima, na versão 9.8 do driver é possível ativar ou não o Crossfire via GUI (antes só em modo texto) e foi implementado o suporte ao opengl 3.1, o fato é que ficou parado durante um tempo e agora está sendo retomado, ou seja, estão fazendo agora o que tinham que ter feito antes.
 
por Gustavo (anônimo) em 21 de agosto de 2009 às 01h43
> Acho que uma placa dessa é para jogos, e Linux (ainda) não é uma plataforma para jogar.

Mas bem que poderia ter suporte para que seja possível jogar pelo Wine. Mesmo tenho apenas uma geforce 7300 LE, aqui eu consigo jogar vários jogos (os mais novos não rodam de forma tão fluida, mas colocando qualidade mais baixa e resolução 800x600 ainda roda a uns 15 fps, o que não é muito diferente do Windows na resolução 1024x768).

Estava querendo colocar outra placa para poder me livrar do Windows de uma vez, e parece que a Radeon não vai deixar eu fazer isso nem que eu queira. Parece que a candidata vai ser a geForce 9800 GT mesmo :)
 
por Thiago (anônimo) em 20 de agosto de 2009 às 22h28
Realmente Linux não é a melhor plataforma para jogos, mas não oferecer suporte decente a um determinado sistema operacional, que embora seja bem menos uzado que o Windows, mas que há muitos admiradores, para mim parece um verdadeiro descaso, que chega a ser desrespeito com quem opta em "fugir do modisno". Entretanto, fora isso vejo as novas placas Radeon como uma ótima opção de compra, pelo ótimo custo X benefício. Tomara que a postura da AMD/ATI em relação ao Linux mude para que estas ótimas placas possam ser utilizadas por quaqluer tipo de usuário.
 
por Felipe (anônimo) em 20 de agosto de 2009 às 20h55
Eu tenho uma HD 4870. Não me arrependo nem um pouco! Acho que uma placa dessa é para jogos, e Linux (ainda) não é uma plataforma para jogar.
 
por Marcio (anônimo) em 20 de agosto de 2009 às 08h59
Aqui no japao uma GTX 295 e uma GTX 285 custa uma fortuna!!! mas as HD 4870 e HD 4850 tem um valor mais atraente!! Se e que me entende! ;)! Um amigo me pediu para ajudar ele a montar um pc para jogos, e acho que vou recomendar uma HD 4870, ja que ele tem dinheiro ne! Acho que ele nao vai se arepender ne!?
 
por Eduardo (anônimo) em 20 de agosto de 2009 às 08h50
Particularmente tenho uma boa experiência com as placas da ATI. Mesmo usando uma configuração "multiseat" no meu pc, consigo jogar Warcraft III e WOW com ótima qualidade e velocidade no Wine. Vou testar algum titulo mais recente pra ver o resultado.
 
por Carlos E. Morimoto em 20 de agosto de 2009 às 08h01
As placas da ATI realmente não são uma opção no Linux: os drivers são muito ruins e o desenvolvimento está parado. Mesmo o desempenho em 2D é ruim (me faz lembrar as placas PCI da década de 90) e mesmo quando funciona a aceleração 3D é quase inútil, já que você não pode utilizá-la na maioria dos jogos executados via Wine e mesmo em muitos aplicativos nativos. É uma situação digna de pena realmente.
Eu sempre mantenho um PC com uma ATI para continuar a testar os drivers Linux, apenas para repetir as decepções a cada nova versão. Hoje em dia nem escrevo mais sobre o tema.