AMD FireStream
AMD FireStream fue la marca de AMD para su línea de productos basada en Radeon que se enfoca en el procesamiento de flujo y / o GPGPU en supercomputadores. Desarrollado originalmente por ATI Technologies en torno a Radeon X1900 XTX en 2006, la línea de productos fue previamente marcada como ATI FireSTREAM y AMD Stream Processor. AMD FireStream también se puede utilizar como un coprocesador de punto flotante para descargar cálculos de la CPU, que es parte de la iniciativa de Torrenza. La línea FireStream se ha suspendido desde 2012, cuando las cargas de trabajo GPGPU se plegaron por completo en la línea AMD FirePro.

Visión general 
La línea FireStream es una serie de tarjetas de expansión complementarias lanzadas de 2006 a 2010, basadas en GPU Radeon estándar pero diseñadas para funcionar como un coprocesador de propósito general, en lugar de renderizar y generar gráficos en 3D. Al igual que la línea FireGL/FirePro, se les dio más memoria y ancho de banda de memoria, pero las tarjetas FireStream no necesariamente tienen puertos de salida de video. Todos son compatibles con coma flotante de precisión simple de 32 bits, y todos, excepto la primera versión, admiten doble precisión de 64 bits. La línea se asoció con nuevas API para proporcionar un rendimiento superior al que las API existentes de OpenGL y Direct3D podrían proporcionar, comenzando con Close to Metal, seguido de OpenCL y Stream Computing SDK, y finalmente integrado en el APP SDK.

Para cargas de trabajo de matemática de punto flotante altamente paralelas, las tarjetas pueden acelerar cómputos grandes en más de 10 veces; Folding@Home, el usuario más antiguo y uno de los más visibles de la GPGPU, obtuvo entre 20 y 40 veces el rendimiento de la CPU. Cada píxel y sombreado de vértice, o sombreador unificado en modelos posteriores, puede realizar cálculos arbitrarios de coma flotante.

Historia 
Tras el lanzamiento de los núcleos de la GPU Radeon R520 y GeForce G70 con sombreadores programables, el gran rendimiento de coma flotante llamó la atención de grupos académicos y comerciales, experimentando con el uso del trabajo no gráfico. El interés llevó a ATI (y Nvidia) a crear productos GPGPU, capaces de calcular fórmulas matemáticas de propósito general de forma masivamente paralela, para procesar cálculos pesados tradicionalmente realizados en CPU y coprocesadores matemáticos de coma flotante especializados. Se proyectó que las GPGPU tienen ganancias de rendimiento inmediatas de un factor de 10 o más, en comparación con el cálculo de CPU de socket múltiple contemporáneo.

Con el desarrollo del X1900 XFX de alto rendimiento casi terminado, ATI basó su primer diseño de procesador de flujo en él, anunciándolo como el próximo ATI FireSTREAM junto con la nueva API Close to Metal en SIGGRAPH 2006. El núcleo en sí no se modificó, a excepción de duplicar la memoria incorporada y el ancho de banda, similar al FireGL V7350; nuevo controlador y soporte de software constituyeron la mayor parte de la diferencia. Folding@home comenzó a utilizar el X1900 para el cálculo general, utilizando un prelanzamiento de la versión 6.5 del controlador ATI Catalyst e informó una mejora de 20-40x en la GPU sobre la CPU. El primer producto fue lanzado a finales de 2006, renombrado como AMD Stream Processor después de la fusión con AMD.

La marca se convirtió en AMD FireStream con la segunda generación de procesadores de flujo en 2007, basada en el chip RV650 con nuevos sombreadores unificados y soporte de precisión doble. El DMA asíncrono también mejoró el rendimiento al permitir un mayor grupo de memoria sin la ayuda de la CPU. Se lanzó un modelo, el 9170, por el precio inicial de US$1999. Los planes incluían el desarrollo de un procesador de flujo en un módulo MXM para 2008, para computación portátil, pero nunca fue lanzado.

La tercera generación siguió rápidamente en 2008 con mejoras dramáticas en el rendimiento del núcleo RV770; el 9250 casi duplicó el rendimiento del 9170, y se convirtió en el primer procesador de teraflop de un solo chip, a pesar de bajar el precio a menos de $1.000. Un hermano más rápido, el 9270, fue lanzado poco después, por $1999.

En 2010, apareció la generación final de FireStreams, las tarjetas 9350 y 9370, basadas en el chip Cypress presentado en el HD 5800. Esta generación volvió a duplicar el rendimiento en relación con el anterior, a 2 teraflops en el 9350 y 2.6 teraflops en el 9370, y fue el primero construido desde cero para OpenCL. Esta generación también fue la única que presentó refrigeración totalmente pasiva y el enfriamiento activo no estuvo disponible.

Las generaciones Northern and Southern Islands se saltaron, y en 2012, AMD anunció que las nuevas series FirePro W (estación de trabajo) y S (servidor) basadas en la nueva arquitectura Graphics Core Next tomarían el lugar de las tarjetas FireStream.

Modelos 

 FireStream 9170 include Direct3D 10.1, OpenGL 3.3 and APP Stream
 FireStream 92x0 include Direct3D 10.1, OpenGL 3.3 and OpenCL 1.0
 FireStream 93x0 include Direct3D 11, OpenGL 4.3 and OpenCL 1.2 with Last Driver updates

Software 
AMD FireStream se lanzó con una amplia gama de soporte de plataforma de software. Una de las firmas de respaldo fue PeakStream (adquirida por Google en junio de 2007), que fue la primera en proporcionar una versión beta abierta de software para admitir CTM y AMD FireStream, así como procesadores x86 y Cell (Cell Broadband Engine). Se afirmó que el FireStream era 20 veces más rápido en aplicaciones típicas que las CPU normales después de ejecutar el software de PeakStream. RapidMind también proporcionó un software de procesamiento de flujo que funcionaba con ATI y NVIDIA, así como procesadores Cell.

Software Development Kit 
Después de abandonar su breve API Close to Metal, AMD se centró en OpenCL. AMD lanzó por primera vez su Stream Computing SDK (v1.0), en diciembre de 2007 bajo AMD EULA, para ser ejecutado en Windows XP. El SDK incluye "Brook+", una versión optimizada de hardware de AMD del lenguaje Brook desarrollada por la Universidad de Stanford, una variante del ANSI C (lenguaje C), de código abierto y optimizada para la informática de flujo continuo. También se incluirán AMD Core Math Library (ACML) y AMD Performance Library (APL) con optimizaciones para AMD FireStream y la biblioteca de videos COBRA (más renombrada como "Transcodificación de vídeo acelerada" o AVT) para la aceleración de transcodificación de video. Otra parte importante del SDK, la capa de abstracción computarizada (CAL), es una capa de desarrollo de software para acceso de bajo nivel, a través de la interfaz de hardware CTM, a la arquitectura de GPU para software de ajuste de rendimiento escrito en varios lenguajes de programación de alto nivel.

En agosto de 2011, AMD lanzó la versión 2.5 del Kit de desarrollo de software de la aplicación ATI, que incluye soporte para OpenCL 1.1, un lenguaje de cómputo paralelo desarrollado por el Grupo Khronos. El concepto de sombreadores de cómputo, oficialmente llamado DirectCompute, en la API de próxima generación de Microsoft llamada DirectX 11 ya está incluido en los controladores de gráficos con compatibilidad con DirectX 11.

Benchmarks 
De acuerdo con AMD-demonstrated system con dos procesadores AMD Opteron de doble núcleo y dos núcleos Radeon R600 GPU que se ejecutan en Microsoft Windows XP Professional, se puede lograr 1 teraflop (TFLOP) mediante un cálculo universal de suma múltiple (MADD). En comparación, un procesador Intel Core 2 Quad Q9650 a 3.0 GHz en ese momento podría alcanzar 48 GFLOPS.

En una demostración del escaneo antivirus Kaspersky SafeStream que se había optimizado para procesadores de flujo AMD, fue capaz de escanear 21 veces más rápido con la aceleración basada en R670 que con la búsqueda ejecutada completamente en un Opteron, en 2007.

Limitaciones 

 Las funciones recursivas no son compatibles con Brook+, porque todas las llamadas a funciones están en línea en el momento de la compilación. Usando CAL, las funciones (recursivas o no) son compatibles con 32 niveles.
 Solo se admite el filtrado de textura bilineal; Las texturas mipmapped y el filtrado anisotrópico no son compatibles.
 Las funciones no pueden tener una cantidad variable de argumentos. El mismo problema ocurre para las funciones recursivas.
 La conversión de números de coma flotante a enteros en GPU se realiza de forma diferente que en las CPU x86; no es totalmente compatible con IEEE-754.
 Hacer una "sincronización global" en la GPU no es muy eficiente, lo que obliga a la GPU a dividir el kernel y hacer la sincronización en la CPU. Dada la cantidad variable de multiprocesadores y otros factores, puede que no haya una solución perfecta para este problema.
 El ancho de banda del bus y la latencia entre la CPU y la GPU pueden convertirse en un cuello de botella.

Véase también 

 Stream Processing
 Heterogeneous System Architecture
 NVIDIA Tesla similar solution by Nvidia
 Intel Xeon Phi similar solution by Intel
 Open Computing Language (OpenCL) – an industry standard
 Compute Unified Device Architecture (CUDA) - a proprietary Nvidia-only solution

Referencias

Enlaces externos 

 ATI Stream Technology FAQ 
 ATI Stream published papers and presentations
 ATI Stream SDK
 AnandTech article on distributed computing
 AMD Intermediate Language Reference Guide (CAL) v2.0 Feb '09

ATI Technologies
AMD FireStream fue la marca de AMD para su línea de productos basada en Radeon que se enfoca en el procesamiento de flujo y / o GPGPU en supercomputadores . Desarrollado originalmente por ATI Technologies en torno a Radeon X1900 XTX en la línea de productos fue previamente marcada como ATI FireSTREAM y AMD Stream Processor . AMD FireStream también se puede utilizar como un coprocesador de punto flotante para descargar cálculos de la CPU , que es parte de la iniciativa de Torrenza . La línea FireStream se ha suspendido desde cuando las cargas de trabajo GPGPU se plegaron por completo en la línea AMD FirePro . Visión general La línea FireStream es una serie de tarjetas de expansión complementarias lanzadas dea basadas en GPU Radeon estándar pero diseñadas para funcionar como un coprocesador de propósito general , en lugar de renderizar y generar gráficos en . Al igual que la línea FireGL/FirePro , se les dio más memoria y ancho de banda de memoria , pero las tarjetas FireStream no necesariamente tienen puertos de salida de video . Todos son compatibles con coma flotante de precisión simple debits , y todos , excepto la primera versión , admiten doble precisión debits . La línea se asoció con nuevas API para proporcionar un rendimiento superior al que las API existentes de OpenGL y Direct3D podrían proporcionar , comenzando con Close to Metal , seguido de OpenCL y Stream Computing SDK , y finalmente integrado en el APP SDK . Para cargas de trabajo de matemática de punto flotante altamente paralelas , las tarjetas pueden acelerar cómputos grandes en más deveces ; Folding@Home , el usuario más antiguo y uno de los más visibles de la GPGPU , obtuvo entreyveces el rendimiento de la CPU . Cada píxel y sombreado de vértice , o sombreador unificado en modelos posteriores , puede realizar cálculos arbitrarios de coma flotante . Historia Tras el lanzamiento de los núcleos de la GPU Radeon R520 y GeForce G70 con sombreadores programables , el gran rendimiento de coma flotante llamó la atención de grupos académicos y comerciales , experimentando con el uso del trabajo no gráfico . El interés llevó a ATI ( y Nvidia ) a crear productos GPGPU , capaces de calcular fórmulas matemáticas de propósito general de forma masivamente paralela , para procesar cálculos pesados tradicionalmente realizados en CPU y coprocesadores matemáticos de coma flotante especializados . Se proyectó que las GPGPU tienen ganancias de rendimiento inmediatas de un factor deo más , en comparación con el cálculo de CPU de socket múltiple contemporáneo . Con el desarrollo del X1900 XFX de alto rendimiento casi terminado , ATI basó su primer diseño de procesador de flujo en él , anunciando lo como el próximo ATI FireSTREAM junto con la nueva API Close to Metal en SIGGRAPH El núcleo en sí no se modificó , a excepción de duplicar la memoria incorporada y el ancho de banda , similar al FireGL V7350 ; nuevo controlador y soporte de software constituyeron la mayor parte de la diferencia . Folding@home comenzó a utilizar el X1900 para el cálculo general , utilizando un prelanzamiento de la versión5 del controlador ATI Catalyst e informó una mejora de en la GPU sobre la CPU . El primer producto fue lanzado a finales de renombrado como AMD Stream Processor después de la fusión con AMD . La marca se convirtió en AMD FireStream con la segunda generación de procesadores de flujo en basada en el chip RV650 con nuevos sombreadores unificados y soporte de precisión doble . El DMA asíncrono también mejoró el rendimiento al permitir un mayor grupo de memoria sin la ayuda de la CPU . Se lanzó un modelo , el por el precio inicial de US$1999 . Los planes incluían el desarrollo de un procesador de flujo en un módulo MXM para para computación portátil , pero nunca fue lanzado . La tercera generación siguió rápidamente encon mejoras dramáticas en el rendimiento del núcleo RV770 ; elcasi duplicó el rendimiento del y se convirtió en el primer procesador de teraflop de un solo chip , a pesar de bajar el precio a menos de $1.000 . Un hermano más rápido , el fue lanzado poco después , por $1999 . En apareció la generación final de FireStreams , las tarjetasy basadas en el chip Cypress presentado en el HD Esta generación volvió a duplicar el rendimiento en relación con el anterior , ateraflops en ely6 teraflops en el y fue el primero construido desde cero para OpenCL . Esta generación también fue la única que presentó refrigeración totalmente pasiva y el enfriamiento activo no estuvo disponible . Las generaciones Northern and Southern Islands se saltaron , y en AMD anunció que las nuevas series FirePro W ( estación de trabajo ) y S ( servidor ) basadas en la nueva arquitectura Graphics Core Next tomarían el lugar de las tarjetas FireStream . Modelos FireStreaminclude Direct3D1 , OpenGL3 and APP Stream FireStream0 include Direct3D1 , OpenGL3 and OpenCL0 FireStream0 include Direct3D OpenGL3 and OpenCL2 with Last Driver updates Software AMD FireStream se lanzó con una amplia gama de soporte de plataforma de software . Una de las firmas de respaldo fue PeakStream ( adquirida por Google en junio de que fue la primera en proporcionar una versión beta abierta de software para admitir CTM y AMD FireStream , así como procesadores x86 y Cell ( Cell Broadband Engine ) . Se afirmó que el FireStream eraveces más rápido en aplicaciones típicas que las CPU normales después de ejecutar el software de PeakStream . RapidMind también proporcionó un software de procesamiento de flujo que funcionaba con ATI y NVIDIA , así como procesadores Cell . Software Development Kit Después de abandonar su breve API Close to Metal , AMD se centró en OpenCL . AMD lanzó por primera vez su Stream Computing SDK ( v1.0 ) , en diciembre debajo AMD EULA , para ser ejecutado en Windows XP . El SDK incluye " Brook+ " , una versión optimizada de hardware de AMD del lenguaje Brook desarrollada por la Universidad de Stanford , una variante del ANSI C ( lenguaje C ) , de código abierto y optimizada para la informática de flujo continuo . También se incluirán AMD Core Math Library ( ACML ) y AMD Performance Library ( APL ) con optimizaciones para AMD FireStream y la biblioteca de videos COBRA ( más renombrada como " Transcodificación de vídeo acelerada " o AVT ) para la aceleración de transcodificación de video . Otra parte importante del SDK , la capa de abstracción computarizada ( CAL ) , es una capa de desarrollo de software para acceso de bajo nivel , a través de la interfaz de hardware CTM , a la arquitectura de GPU para software de ajuste de rendimiento escrito en varios lenguajes de programación de alto nivel . En agosto de AMD lanzó la versión5 del Kit de desarrollo de software de la aplicación ATI , que incluye soporte para OpenCL1 , un lenguaje de cómputo paralelo desarrollado por el Grupo Khronos . El concepto de sombreadores de cómputo , oficialmente llamado DirectCompute , en la API de próxima generación de Microsoft llamada DirectXya está incluido en los controladores de gráficos con compatibilidad con DirectX Benchmarks De acuerdo con AMD-demonstrated system con dos procesadores AMD Opteron de doble núcleo y dos núcleos Radeon R600 GPU que se ejecutan en Microsoft Windows XP Professional , se puede lograrteraflop ( TFLOP ) mediante un cálculo universal de suma múltiple ( MADD ) . En comparación , un procesador Intel CoreQuad Q9650 a0 GHz en ese momento podría alcanzarGFLOPS . En una demostración del escaneo antivirus Kaspersky SafeStream que se había optimizado para procesadores de flujo AMD , fue capaz de escanearveces más rápido con la aceleración basada en R670 que con la búsqueda ejecutada completamente en un Opteron , en Limitaciones Las funciones recursivas no son compatibles con Brook+ , porque todas las llamadas a funciones están en línea en el momento de la compilación . Usando CAL , las funciones ( recursivas o no ) son compatibles conniveles . Solo se admite el filtrado de textura bilineal ; Las texturas mipmapped y el filtrado anisotrópico no son compatibles . Las funciones no pueden tener una cantidad variable de argumentos . El mismo problema ocurre para las funciones recursivas . La conversión de números de coma flotante a enteros en GPU se realiza de forma diferente que en las CPU x86 ; no es totalmente compatible con IEEE-754 . Hacer una " sincronización global " en la GPU no es muy eficiente , lo que obliga a la GPU a dividir el kernel y hacer la sincronización en la CPU . Dada la cantidad variable de multiprocesadores y otros factores , puede que no haya una solución perfecta para este problema . El ancho de banda del bus y la latencia entre la CPU y la GPU pueden convertir se en un cuello de botella . Vea se también Stream Processing Heterogeneous System Architecture NVIDIA Tesla similar solution by Nvidia Intel Xeon Phi similar solution by Intel Open Computing Language ( OpenCL ) – an industry standard Compute Unified Device Architecture ( CUDA ) - a proprietary Nvidia-only solution Referencias Enlaces externos ATI Stream Technology FAQ ATI Stream published papers and presentations ATI Stream SDK AnandTech article on distributed computing AMD Intermediate Language Reference Guide ( CAL ) v2.0 Feb '09 ATI Technologies