WikiMini

AMD FireStream

AMD FireStream era a marca registrada da AMD para sua linha de produtos baseada em Radeon, voltada para processamento de fluxo e/ou GPGPU em supercomputadores. Originalmente desenvolvida pela ATI Technologies em torno do Radeon X1900 XTX em 2006, a linha de produtos era anteriormente denominada ATI FireSTREAM e AMD Stream Processor.[1] O AMD FireStream também pode ser usado como um coprocessador de ponto flutuante para descarregar cálculos de CPU, o que faz parte da iniciativa Torrenza. A linha FireStream foi descontinuada desde 2012, quando as cargas de trabalho GPGPU foram totalmente incorporadas à linha AMD FirePro.

A linha FireStream é uma série de placas de expansão adicionais lançadas de 2006 a 2010, baseadas em GPUs Radeon padrão, mas projetadas para servir como um coprocessador de uso geral, em vez de renderizar e gerar gráficos 3D. Assim como a linha FireGL/FirePro, elas receberam mais memória e largura de banda de memória, mas as placas FireStream não necessariamente têm portas de saída de vídeo. Todos oferecem suporte a ponto flutuante de precisão simples de 32 bits, e todos, exceto o primeiro lançamento, oferecem suporte a precisão dupla de 64 bits. A linha foi associada a novas APIs para fornecer maior desempenho do que as APIs de shader OpenGL e Direct3D existentes, começando com Close to Metal, seguido por OpenCL e Stream Computing SDK e, eventualmente, integrado ao APP SDK.

Para cargas de trabalho matemáticas de ponto flutuante altamente paralelas, os cartões podem acelerar grandes cálculos em mais de 10 vezes; Folding@Home, o primeiro e um dos usuários mais visíveis do GPGPU, obteve 20 a 40 vezes o desempenho da CPU.[2] Cada pixel e shader de vértice, ou shader unificado em modelos posteriores, pode executar cálculos arbitrários de ponto flutuante.

Após o lançamento dos núcleos de GPU Radeon R520 e GeForce G70 com shaders programáveis, o alto rendimento de ponto flutuante atraiu a atenção de grupos acadêmicos e comerciais, que experimentaram usá-los para trabalhos não gráficos. O interesse levou a ATI (e a Nvidia) a criar produtos GPGPU — capazes de calcular fórmulas matemáticas de uso geral de forma massivamente paralela — para processar cálculos pesados tradicionalmente feitos em CPUs e coprocessadores matemáticos de ponto flutuante especializados. As GPGPUs foram projetadas para ter ganhos de desempenho imediatos de um fator de 10 ou mais, em comparação ao cálculo contemporâneo somente de CPU multisocket.

Com o desenvolvimento do X1900 XFX de alto desempenho quase concluído, a ATI baseou seu primeiro projeto de Processador de Fluxo nele, anunciando-o como o próximo ATI FireSTREAM junto com a nova API Close to Metal na SIGGRAPH 2006.[3] O núcleo em si permaneceu praticamente inalterado, exceto pela duplicação da memória interna e da largura de banda, semelhante ao FireGL V7350; o novo driver e suporte de software compensaram a maior parte da diferença. O Folding@home começou a usar o X1900 para computação geral, usando uma pré-lançamento da versão 6.5 do driver ATI Catalyst, e relatou uma melhoria de 20 a 40x na GPU em relação à CPU.[2] O primeiro produto foi lançado no final de 2006, renomeado como AMD Stream Processor após a fusão com a AMD.[4]

A marca se tornou AMD FireStream com a segunda geração de processadores de fluxo em 2007, com base no chip RV650 com novos shaders unificados e suporte de precisão dupla.[5] O DMA assíncrono também melhorou o desempenho ao permitir um pool de memória maior sem a ajuda da CPU. Um modelo foi lançado, o 9170, pelo preço inicial de US$ 1.999. Os planos incluíam o desenvolvimento de um processador de fluxo em um módulo MXM até 2008, para computação em laptop,[6] mas nunca foi lançado.

A terceira geração surgiu rapidamente em 2008 com melhorias drásticas de desempenho do núcleo RV770; o 9250 teve quase o dobro do desempenho do 9170 e se tornou o primeiro processador teraflop de chip único, apesar de ter reduzido o preço para menos de US$ 1.000.[7] Um irmão mais rápido, o 9270, foi lançado logo depois, por US$ 1.999.

Em 2010, foi lançada a última geração de FireStreams, as placas 9350 e 9370, baseadas no chip Cypress presente no HD 5800. Esta geração novamente dobrou o desempenho em relação à anterior, para 2 teraflops no 9350 e 2,6 teraflops no 9370,[8] e foi a primeira construída do zero para OpenCL . Esta geração também foi a única a apresentar resfriamento totalmente passivo, e o resfriamento ativo não estava disponível.

As gerações das Ilhas do Norte e do Sul foram ignoradas e, em 2012, a AMD anunciou que as novas séries FirePro W (estação de trabalho) e S (servidor) baseadas na nova arquitetura Graphics Core Next substituiriam as placas FireStream.[9]

Modelo
(Codinome)
Data de
lançamento
Arquitetura
e Fab
Interface de barramento Stream processors Clock Memória Poder de processamento[a]
(GFLOPS)
TDP (Watts)
Core (MHz) Memória (MHz) Tamanho
(GB)
Tipo Largura do barramento (bit) Largura de banda
(GB/s)
Single Double
Stream Processor
(R580)
2006 R500
80 nm
240 600 1024 GDDR3 256 83.2 375[10] N/A 165
FireStream 9170
(RV670)[11][12]
8 de novembro de 2007 TeraScale 1
55 nm
PCIe 2.0 x16 320 800 800 2048 GDDR3 256 51.2 512 102.4 105
FireStream 9250
(RV770)[13][14]
16 de junho de 2008 TeraScale 1
55 nm
PCIe 2.0 x16 800 625 993 1024 GDDR3 256 63.6 1000 200 150
FireStream 9270
(RV770)[15][16]
13 de novembro de 2008 TeraScale 1
55 nm
PCIe 2.0 x16 800 750 850 2048 GDDR5 256 108.8 1200 240 160
FireStream 9350
(Cypress XT)[17]
23 de junho de 2010 TeraScale 2
40 nm
PCIe 2.1 x16 1440 700 1000 2048 GDDR5 256 128 2016 403.2 150
FireStream 9370
(Cypress XT)[18]
23 de junho de 2010 TeraScale 2
40 nm
PCIe 2.1 x16 1600 825 1150 4096 GDDR5 256 147.2 2640 528 225
  1. O desempenho de precisão é calculado a partir da velocidade do clock do núcleo base (ou de boost) com base em uma operação FMA.


O AMD FireStream foi lançado com uma ampla gama de suporte de plataforma de software. Uma das empresas de suporte foi a PeakStream (adquirida pelo Google em junho de 2007), que foi a primeira a fornecer uma versão beta aberta do software para dar suporte aos processadores CTM e AMD FireStream, bem como x86 e Cell (Cell Broadband Engine). O FireStream foi considerado 20 vezes mais rápido em aplicações típicas do que CPUs comuns após executar o software PeakStream. A RapidMind também forneceu software de processamento de fluxo que funcionava com ATI e NVIDIA, bem como processadores Cell.[19]

Kit de Desenvolvimento de Software

[editar | editar código fonte]

Após abandonar sua curta API Close to Metal, a AMD se concentrou no OpenCL. A AMD lançou pela primeira vez seu Stream Computing SDK (v1.0), em dezembro de 2007, sob o AMD EULA, para ser executado no Windows XP.[19] O SDK inclui "Brook+", uma versão otimizada para hardware AMD da linguagem Brook desenvolvida pela Universidade de Stanford, ela própria uma variante do ANSI C (linguagem C), de código aberto e otimizada para computação de fluxo. A AMD Core Math Library (ACML) e a AMD Performance Library (APL) com otimizações para o AMD FireStream e a biblioteca de vídeo COBRA (doravante renomeada como "Accelerated Video Transcoding" ou AVT) para aceleração de transcodificação de vídeo também serão incluídas. Outra parte importante do SDK, a Compute Abstraction Layer (CAL), é uma camada de desenvolvimento de software voltada para acesso de baixo nível, por meio da interface de hardware CTM, à arquitetura da GPU para software de ajuste de desempenho escrito em várias linguagens de programação de alto nível.

Em agosto de 2011, a AMD lançou a versão 2.5 do ATI APP Software Development Kit,[19] que inclui suporte para OpenCL 1.1, uma linguagem de computação paralela desenvolvida pelo Khronos Group. O conceito de shaders de computação, oficialmente chamado de DirectCompute, na API de próxima geração da Microsoft chamada DirectX 11 já está incluído em drivers gráficos com suporte ao DirectX 11.

SDK de aplicativo AMD

[editar | editar código fonte]

De acordo com um sistema demonstrado pela AMD[20] com dois processadores AMD Opteron dual-core e dois núcleos de GPU Radeon R600 rodando no Microsoft Windows XP Professional, 1 teraflop (TFLOP) pode ser obtido por um cálculo universal de multiplicação e adição (MADD). Em comparação, um Intel Core 2 Quad Q9650 de 3.0 GHz da época conseguia atingir 48 GFLOPS.[21]

Em uma demonstração do antivírus Kaspersky SafeStream, que foi otimizado para processadores AMD Stream, foi possível realizar a varredura 21 vezes mais rápido com a aceleração baseada no R670 do que com a pesquisa executada inteiramente em um Opteron, em 2007.[22]

  • Funções recursivas não são suportadas no Brook+ porque todas as chamadas de função são incorporadas em tempo de compilação. Usando CAL, funções (recursivas ou não) são suportadas em 32 níveis.
  • Somente filtragem de textura bilinear é suportada; texturas mapeadas mip e filtragem anisotrópica não são suportadas.
  • Funções não podem ter um número variável de argumentos. O mesmo problema ocorre para funções recursivas.
  • A conversão de números de ponto flutuante em inteiros em GPUs é feita de forma diferente do que em CPUs x86; não é totalmente compatível com IEEE-754.
  • Fazer "sincronização global" na GPU não é muito eficiente, o que força a GPU a dividir o kernel e fazer a sincronização na CPU. Dado o número variável de multiprocessadores e outros fatores, pode não haver uma solução perfeita para esse problema.
  • A largura de banda do barramento e a latência entre a CPU e a GPU podem se tornar um gargalo.

Referências

  1. AMD Press Release Arquivado em 2007-06-29 no Wayback Machine
  2. a b Gasior, Geoff (16 de outubro de 2006). «A closer look at Folding@home on the GPU». The Tech Report. Consultado em 3 de maio de 2025. Cópia arquivada em 3 de junho de 2016 
  3. ATI SIGGRAPH 2006 Presentation (PDF) (Relatório). ATI Technologies. Arquivado do original (PDF) em 21 de dezembro de 2016 
  4. Valich, Theo (16 de novembro de 2006). «ATI FireSTREAM AMD Stream board revealed». The Inquirer. Consultado em 3 de maio de 2025. Arquivado do original em 21 de agosto de 2009 
  5. «AMD Delivers First Stream Processor with Double Precision Floating Point Technology». AMD. 8 de novembro de 2007. Consultado em 3 de maio de 2025. Arquivado do original em 19 de junho de 2017 
  6. AMD WW HPC 2007 presentation (PDF) (Relatório). p. 37. Cópia arquivada (PDF) em 10 de março de 2016 
  7. «AMD Stream Processor First to Break 1 Teraflop Barrier». AMD. 16 de junho de 2008. Consultado em 3 de maio de 2025. Arquivado do original em 19 de junho de 2017 
  8. «Newest AMD FireStream(TM) GPU Compute Accelerators Deliver Almost 2x Single and Double Precision Peak Performance and Performance Per Watt Over Last Generation». AMD. 23 de junho de 2010. Consultado em 3 de maio de 2025. Arquivado do original em 19 de junho de 2017 
  9. Smith, Ryan (14 de agosto de 2012). «The AMD Firepro W9000 W8000 Review Part 1». Anandtech.com. Consultado em 3 de maio de 2025 
  10. «Beyond3D - ATI R580: Radeon X1900 XTX & Crossfire». Beyond3D 
  11. «AMD Delivers First Stream Processor with Double Precision Floating Point Technology». AMD. 8 de novembro de 2007. Consultado em 26 de maio de 2016. Cópia arquivada em 19 de junho de 2017 
  12. «AMD FireStream 9170 Specs». TechPowerUp 
  13. AMD FireStream 9250 - Product page Arquivado em 2010-05-13 no Wayback Machine
  14. «AMD FireStream 9250 Specs». TechPowerUp 
  15. AMD FireStream 9270 - Product page Arquivado em 2010-02-16 no Wayback Machine
  16. «AMD FireStream 9270 Specs». TechPowerUp 
  17. «AMD FireStream 9350 Specs». TechPowerUp 
  18. «AMD FireStream 9370 Specs». TechPowerUp 
  19. a b c AMD APP SDK download page Arquivado em 2012-09-03 no Wayback Machine and Stream Computing SDK EULA Arquivado em 2009-03-06 no Wayback Machine, retrieved December 29, 2007
  20. HardOCP report Arquivado em 2016-03-04 no Wayback Machine, retrieved July 17, 2007
  21. Intel microprocessor export compliance metrics Arquivado em 2011-03-15 no Wayback Machine
  22. Valich, Theo (12 de setembro de 2007). «GPGPU drastically accelerates anti-virus software». The Inquirer. Consultado em 3 de maio de 2025. Arquivado do original em 23 de setembro de 2009 

Ligações externas

[editar | editar código fonte]