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.[1] 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.[2] 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.[3] 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.[4]
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.[5] 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,[6] 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.[7] 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,[8] 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.[9]
Modelos
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.[10] 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[11] 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.[12]
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.[13]
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.[14]
- 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
- AMD Press Release
- «A closer look at Folding@home on the GPU». 16 de octubre de 2006. Consultado el 26 de mayo de 2016.
- ATI SIGGRAPH 2006 Presentation, ATI Technologies, archivado desde el original el 21 de diciembre de 2016, consultado el 24 de junio de 2018.
- «ATI FireSTREAM AMD Stream board revealed». 16 de noviembre de 2006. Archivado desde el original el 21 de agosto de 2009. Consultado el 26 de mayo de 2016.
- «AMD Delivers First Stream Processor with Double Precision Floating Point Technology». AMD. 8 de noviembre de 2007. Archivado desde el original el 19 de junio de 2017. Consultado el 26 de mayo de 2016.
- AMD WW HPC 2007 presentation, p. 37.
- «AMD Stream Processor First to Break 1 Teraflop Barrier». AMD. 16 de junio de 2008. Archivado desde el original el 19 de junio de 2017. Consultado el 26 de mayo de 2016.
- «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 junio de 2010. Archivado desde el original el 19 de junio de 2017. Consultado el 26 de mayo de 2016.
- Smith, Ryan (14 de agosto de 2012). «The AMD Firepro W9000 W8000 Review Part 1». Anandtech.com. Consultado el 28 de junio de 2016.
- AMD APP SDK download page Archivado el 3 de septiembre de 2012 en Wayback Machine. and Stream Computing SDK EULA Archivado el 6 de marzo de 2009 en Wayback Machine., retrieved December 29, 2007
- HardOCP report Archivado el 4 de marzo de 2016 en Wayback Machine., retrieved July 17, 2007
- Intel microprocessor export compliance metrics
- «GPGPU drastically accelerates anti-virus software». 12 de septiembre de 2007. Archivado desde el original el 23 de septiembre de 2009. Consultado el 26 de mayo de 2016.
- AMD Intermediate Language Reference Guide, August 2008