Soporte de Hardware para la Computación de propósito general en GPUs. Las tarjetas de video de computadora son producidas por varios proveedores, como Nvidia , y AMD y ATI. Las tarjetas de dichos proveedores difieren en la implementación del soporte de formato de datos, como los formatos de punto entero y flotante (32 bits y 64 bits).
Microsoft introdujo un estándar de Shader Model para ayudar a clasificar las diversas características de las tarjetas gráficas en un número de versión simple (1.0, 2.0, 3.0, etc.).
Números enteros
Las tarjetas de video Pre-DirectX 9 solo son compatibles con tipos de color paleteado o enteros. Hay varios formatos disponibles, cada uno contiene un elemento rojo, un elemento verde y un elemento azul. A veces se agrega otro valor alfa, que se utiliza para la transparencia. Los formatos comunes son:
- 8 bits por píxel: a veces el modo de paleta, donde cada valor es un índice en una tabla con el valor de color real especificado en uno de los otros formatos. A veces, tres bits para el rojo, tres bits para el verde y dos bits para el azul.
- 16 bits por píxel: por lo general, los bits se asignan como cinco bits para el rojo, seis bits para el verde y cinco bits para el azul.
- 24 bits por píxel: hay ocho bits para cada uno de rojo, verde y azul.
- 32 bits por píxel: hay ocho bits para cada uno de rojo, verde, azul y alfa .
Números de punto flotante
Para los primeros gráficos de función fija o de programación limitada (es decir, hasta e incluyendo GPU compatibles con DirectX 8.1) esto fue suficiente porque esta es también la representación utilizada en las pantallas. Es importante tener en cuenta que esta representación tiene ciertas limitaciones. Con una potencia de procesamiento de gráficos suficiente, incluso los programadores de gráficos querrían utilizar mejores formatos, como los formatos de datos de punto flotante, para obtener efectos tales como imágenes de alto rango dinámico. Muchas aplicaciones GPGPU requieren una precisión de punto flotante, que venía con tarjetas de video que cumplen con la especificación DirectX 9.
DirectX 9 Shader Model 2.x sugirió el soporte de dos tipos de precisión: total y parcial. El soporte de precisión total podría ser FP32 o FP24 (punto flotante de 32 o 24 bits por componente) o mayor, mientras que la precisión parcial fue FP16. La serie de GPU Radeon R300 de ATI admitía la precisión de la FP24 solo en la tubería de fragmentos programables (aunque la FP32 era compatible con los procesadores de vértices), mientras que la serie NV30 de Nvidia era compatible con la FP16 y la FP32; otros proveedores como S3 Graphics y XGI admitieron una mezcla de formatos hasta FP24.
Shader Model 3.0 modificó la especificación, aumentando los requisitos de precisión a un mínimo de soporte FP32 en la tubería de fragmentos. La generación de R5xx compatible con Shader Model 3.0 de ATI ( serie Radeon X1000 ) admite solo FP32 en toda la tubería, mientras que las series NV4x y G7x de Nvidia continuaron siendo compatibles con las precisiones parciales FP32 de precisión total y FP16. Aunque no está estipulado por Shader Model 3.0, las GPU ATI y Shader Model 3.0 de Nvidia presentaron soporte para los objetivos de renderizado FP16 mezclables, facilitando más fácilmente el soporte para el procesamiento de alto rango dinámico.
Las implementaciones de punto flotante en las GPU de Nvidia son en su mayoría compatibles con IEEE; Sin embargo, esto no es cierto en todos los proveedores. Esto tiene implicaciones para la corrección que se consideran importantes para algunas aplicaciones científicas. Si bien los valores de punto flotante de 64 bits (flotación de doble precisión) generalmente están disponibles en las CPU, estos no son universalmente compatibles con las GPU. Algunas arquitecturas de GPU sacrifican el cumplimiento de IEEE, mientras que otras carecen de precisión doble. Se han realizado esfuerzos para emular valores de punto flotante de doble precisión en las GPU; sin embargo, la compensación de la velocidad niega cualquier beneficio de descargar la computación en la GPU en primer lugar.
Vectorización
La mayoría de las operaciones en la GPU operan de manera vectorial: una operación se puede realizar en hasta cuatro valores a la vez. Por ejemplo, si un color <R1, G1, B1> se va a modular con otro color <R2, G2, B2>, la GPU puede producir el color resultante en una operación. Esta funcionalidad es útil en gráficos porque casi todos los tipos de datos básicos son vectores (2, 3 o 4 dimensiones). Los ejemplos incluyen vértices, colores, vectores normales y coordenadas de textura. Muchas otras aplicaciones pueden dar buen uso a esto, y debido a su mayor rendimiento, las instrucciones vectoriales, denominadas instrucción única, datos múltiples ( SIMD ), han estado disponibles durante mucho tiempo en las CPU.
Sugiero consultar también: Historia e implementaciones de la computación de propósito general en unidades de procesamiento de gráficos; Qué es la Computación GPU; La computación acelerada por GPUs se abre paso en los centros de datos
Consultor y escritor sobre Marketing online, Social media y temas Geek en general. Comprometido con HostDime en los portales de habla hispana.
More from Tecnología
Lo digital está alterando las Industrias tradicionales
Lo digital está alterando las industrias tradicionales. Ya sea en el país o en el extranjero, la transformación digital ha …
¿Cuál es la función de apache Tomcat?
Vamos a responder a la pregunta: ¿cuál es la función de Apache Tomcat? Se trata de un Servidor de aplicaciones …
¿Qué es un Servidor Dedicado?
Se puede llegar a decir que un Servidor Dedicado es la contraparte del Hosting Compartido. Mientras que un servidor compartido …