GPUOpen es un paquete de software de middleware desarrollado originalmente por Radeon Technologies Group de Advanced Micro Devices (AMD) que ofrece efectos visuales avanzados para juegos de computadora. Fue lanzado en 2016. GPUOpen sirve como una alternativa y un competidor directo de Nvidia GameWorks. GPUOpen es similar a GameWorks en que abarca varias tecnologías gráficas diferentes como sus componentes principales que antes eran independientes y estaban separados entre sí.[1]​ Sin embargo, GPUOpen es un software de código completamente abierto, a diferencia de GameWorks, que es propietario y cerrado.

GPUOpen
Información general
Tipo de programa Bibliotecas de efectos de juego, depuración de GPU, creación de perfiles de CPU y GPU
Autor Advanced Micro Devices
Desarrollador Advanced Micro Devices
Modelo de desarrollo Código abierto
Lanzamiento inicial 26 de enero de 2016 (8 años)
Licencia Licencia MIT
Información técnica
Programado en
Enlaces

Historia

editar

GPUOpen se anunció el 15 de diciembre de 2015,[1][2][3][4][5]​ y se lanzó el 26 de enero de 2016.

Razón fundamental

editar

Nicolas Thibieroz, gerente sénior de ingeniería de juegos en todo el mundo de AMD, argumenta que "puede ser difícil para los desarrolladores aprovechar su inversión en I+D tanto en consolas como en PC debido a la disparidad entre las dos plataformas" y que "las bibliotecas propietarias o las cadenas de herramientas con las API "black box" evita que los desarrolladores accedan al código con fines de mantenimiento, portabilidad u optimizaciones".[6]​ Él dice que las próximas arquitecturas, como la serie RX 400 de AMD, "incluyen muchas características que no están expuestas hoy en las API de gráficos de PC".

AMD diseñó GPUOpen para ser una pila de middleware de código abierto competidora lanzada bajo la licencia MIT. Las bibliotecas están destinadas a aumentar la portabilidad del software entre consolas de videojuegos, PC y también computación de alto rendimiento.[7]

Componentes

editar

GPUOpen unifica muchas de las herramientas y soluciones previamente separadas de AMD en un solo paquete, y también las abre completamente bajo la licencia MIT.[3]​ GPUOpen también facilita que los desarrolladores obtengan acceso a la GPU de bajo nivel.[8]

Además, AMD quiere otorgar a los desarrolladores interesados el tipo de "acceso directo" de bajo nivel a sus GPU basadas en GCN, que supera las posibilidades de Direct3D 12 o Vulkan. AMD mencionó, por ejemplo, un acceso de bajo nivel a los motores informáticos asíncronos (ACE). El ACE implementa "Cómputo asíncrono", pero no se puede configurar libremente en Vulkan o Direct3D 12.

GPUOpen se compone de varios componentes principales, herramientas y SDK.[1]

Juegos y CGI

editar

Software para imágenes generadas por computadora (CGI) utilizado en el desarrollo de juegos de computadora y películas por igual.

Bibliotecas de efectos visuales

editar
Bibliotecas de efectos visuales GPUOpen [9]
Nombre API Fuente Descripción
TressFX DirectX 12, Vulkan GitHub Esta biblioteca de efectos visuales permite la creación de cabello, pelaje y hierba realistas.
GeometryFX DirectX 11 GitHub Esta biblioteca permite un fácil acceso al filtrado de triángulos basado en computación.
DepthOfFieldFX DirectX 11 GitHub Esta biblioteca otorga acceso a una implementación de profundidad de campo optimizada para la arquitectura de GPU GCN a través de un sombreador de cómputo.
ShadowFX DirectX11, DirectX12 GitHub Esta biblioteca otorga acceso a una implementación para el filtrado de sombra diferido que está optimizado para la arquitectura de GPU GCN.
FidelityFX DirectX 11, DirectX 12, Vulkan GitHub FidelityFX es un conjunto de efectos visuales y bibliotecas auxiliares de efectos.

FidelityFX

editar
Componentes de FidelityFX[10]
Nombre Algoritmo Fuente Descripción
FidelityFX CAS Nitidez adaptativa de contraste GitHub Este algoritmo agudiza de forma adaptativa una imagen o escena mientras minimiza los artefactos.
FidelityFX CACAO Oclusión ambiental de cómputo adaptativo combinado GitHub Este algoritmo es una implementación optimizada de oclusión ambiental de muestreo adaptable.
FidelityFX LPM Mapeador de conservación de luminancia GitHub Este algoritmo se utiliza para asignar tonos a la luminancia de un píxel RGB en lugar de asignar tonos al color del píxel.
FidelityFX SPD Remuestreador de un solo paso GitHub Este algoritmo, optimizado para la arquitectura GPU RDNA, se utiliza para generar 12 niveles de MIP para una textura dada.
FidelityFX SSSR Reflejos estocásticos del espacio de la pantalla GitHub Este algoritmo se utiliza para agregar reflejos en el espacio de la pantalla a un cuadro o escena.
FidelityFX VS Sombreado variable GitHub Este algoritmo se utiliza para generar sombreado de tasa variable basado en imágenes utilizando la luminancia de las muestras en el cuadro anterior.
FidelityFX Parallel Sort Clasificación Radix GitHub Este algoritmo proporciona una ordenación de radix basada en computación.
FidelityFX Denoiser Eliminador de ruido de sombras y reflejos GitHub Este algoritmo proporciona funcionalidad de eliminación de ruido para sombras con trazado de rayos y reflejos con trazado de rayos o espacio de pantalla.
FidelityFX Super Resolution 1 Muestreador ascendente espacial GitHub Este algoritmo se usa para aumentar la muestra de una imagen o cuadro a una resolución más alta utilizando solo la información espacial proporcionada en el cuadro de entrada.
FidelityFX Super Resolution 2 Mejora temporal GitHub Este algoritmo se utiliza para aumentar la escala de fotogramas a una resolución más alta utilizando la información temporal proporcionada por los fotogramas de entrada.

FidelityFX Super Resolution

editar

FidelityFX Super Resolution (FSR) se utiliza para aumentar la muestra de una imagen de entrada a una resolución más alta. Hay dos versiones de FSR con una técnica de escalado y una calidad de imagen distintivas. FSR 1 es un escalador espacial basado en el algoritmo Lanczos que requiere una imagen de menor resolución con alias, mientras que FSR 2 es un escalador temporal basado en un Lanczos modificado que requiere una imagen con alias de menor resolución y utiliza los datos temporales (como vectores de movimiento e historial de fotogramas), y luego aplica su propio pase de suavizado que reemplaza la solución de suavizado temporal del juego. Los ajustes preestablecidos estándar para FSR de AMD se pueden encontrar en la siguiente tabla. Tenga en cuenta que estos ajustes preestablecidos no son la única forma en que se puede usar el algoritmo, son simplemente ajustes preestablecidos para resoluciones de entrada/salida. Ciertos títulos, como Dota 2, han ofrecido controles deslizantes de resolución para ajustar el porcentaje de escalado o escalar dinámicamente la resolución de procesamiento interna según el límite de FPS.

Historial de versiones
Versión Fecha de lanzamiento Características destacadas
1.0 / 1.0.1 junio 2021 Lanzamiento de FidelityFX Super Resolution (FSR), código fuente disponible en julio de 2021.[11][12]
1.0.2 noviembre 2021 Revisión de nitidez excesiva Robust Contrast-Adaptive Sharpening (RCAS).[13]
2.0.1 / 2.0.1a marzo 2022 Lanzamiento de FidelityFX Super Resolution 2.0 (FSR2), código fuente disponible en junio de 2022.[14][15]
2.1.0 septiembre 2022 Efecto fantasma reducido y mejora de la calidad de escalado. Farming Simulator 2022 fue uno de los primeros en adoptarlo con el parche 1.7.1.[16]
2.1.1 septiembre 2022 [17]
2.1.2 octubre 2022 [18]
2.2.0 / 2.2.0a noviembre 2022 Mejoras en el rango HDR, reducción de artefactos fantasma y parpadeo. Código fuente disponible en febrero de 2023.[19]
Preajustes estándar de FSR[20][21]
Ajuste preestablecido de calidad[a] Factor de escala[b] Escala de renderizado[c]
Calidad ultra solo en v1.0 1,30x 77,0%
Calidad 1.50x 66,6%
Equilibrado 1.70x 58,8%
Rendimiento 2.00x 50,0%
Ultra rendimiento desde v2.0 3.00x 33,3%

FSR 2 también se puede modificar en casi cualquier juego compatible con DLSS intercambiando la DLL de DLSS con una DLL de capa de traducción que mapea las llamadas de la API de DLSS a las llamadas de la API de FSR 2.[22]

Herramientas

editar

El directorio oficial de AMD enumera:[23]

Nombre código fuente API Sistema operativo Tarea
CodeXL CodeXL Direct3D, OpenGL, OpenCL, Vulkan Linux

Windows

Conjunto de herramientas de desarrollo de software que incluye un depurador de GPU, un perfilador de GPU, un perfilador de CPU, un analizador de núcleo OpenCL estático y varios complementos.[24]
Analizador estático para AMD CodeXL amd-codexl-analyzer Direct3D, OpenGL, OpenCL Linux

Windows 64bit

Compilador fuera de línea y análisis de rendimiento CLI: herramienta para procesar: núcleos OpenCL, sombreadores HLSL y sombreadores GLSL parte del conjunto de herramientas AMD CodeXL requiere la instalación de Radeon Software Crimson Edition o AMD Catalyst para ejecutar esta herramienta.[25]
Complemento D3D 12 para GPU PerfStudio amd-gpuperfstudio-dx12 Direct3D 12 Windows Un complemento para GPU PerfStudio GPU perfstudio[26]
Tootle amd-tootle agnostic Linux

Windows

Herramienta de optimización de orden de triángulos; desarrollado originalmente en 2006; se puede integrar fácilmente como parte de una cadena de herramientas de preprocesamiento de renderizado o malla[27]​ Cf. http://mgarland.org/files/papers/quadrics.pdf

Habiendo sido lanzado por ATI Technologies bajo la licencia BSD en 2006, HLSL2GLSL no es parte de GPUOpen. Queda por ver si habrá disponibles herramientas similares para SPIR-V, al igual que el lanzamiento oficial de Vulkan (API). El código fuente que se ha definido como parte de GPUOpen también forma parte del kernel de Linux (por ejemplo, amdgpu y amdkfd[28]​), Mesa 3D y LLVM.

Kits de desarrollo de software

editar
Nombre Fuente API Sistema operativo Tarea
Advanced Media Framework (AMF) SDK GitHub DirectX 12 Windows 64-bit Marco multimedia portátil y liviano que abstrae la mayor parte de la plataforma y los detalles específicos de la API.
FireRays (RadeonRays) SDK GitHub agnostic 64-bit Linux, OS X, 64-bit Windows Una biblioteca de intersección de trazado de rayos heterogéneos de alta eficiencia y alto rendimiento para GPU y CPU o APU en cualquier plataforma.
FireRender (ProRender) SDK GitHub motor de renderizado basado en la física
LiquidVR SDK GitHub Direct3D 11 Windows mejora la suavidad de la realidad virtual.[29]​ El objetivo es reducir la latencia entre el hardware para que el hardware pueda seguir el ritmo del movimiento de la cabeza del usuario, eliminando el mareo por movimiento. Un enfoque particular está en las configuraciones de doble GPU donde cada GPU ahora renderizará para un ojo individualmente de la pantalla
RapidFire SDK GitHub facilita el uso de los bloques SIP de aceleración de compresión de video de AMD VCE (codificador H.264) y UVD (descodificador H.264) para "juegos en la nube"/renderización fuera del sitio
True Audio Next (TAN) SDK GitHub OpenCL Windows 64-bit SDK para procesamiento de señales de audio de alto rendimiento acelerado por GPU Radeon y multinúcleo.

Cómputo profesional

editar

A partir de 2022, el ecosistema de software informático de AMD se reagrupa bajo el metaproyecto ROCm.

 
Iniciativa AMD Boltzmann: amdgpu (Linux kernel 4.2+) y amdkfd (Linux kernel 3.19+)

Software en torno a la arquitectura de sistemas heterogéneos (HSA), computación de propósito general en unidades de procesamiento de gráficos (GPGPU) y computación de alto rendimiento (HPC).

Radeon Open Compute (ROCm)

editar

La "Iniciativa Boltzmann" de AMD (llamada así por Ludwig Boltzmann) se anunció en noviembre de 2015 en SuperComputing15[30][31][32][33][34]​ y se convirtió en la plataforma Radeon Open Compute (ROCm). Su objetivo es proporcionar una alternativa a CUDA de Nvidia, que incluye una herramienta para transferir el código fuente de CUDA al código fuente portátil (HIP) que se puede compilar tanto en HCC como en NVCC.

  • Controlador Radeon Open Compute Kernel (ROCK)
  • Tiempo de ejecución Radeon Open Compute Runtime (ROCR)
  • HCC: Heterogeneous Compute Compiler
  • HIP: C++ Heterogeneous-Compute Interface for Portability

Heterogeneous System Architecture

editar
  • HSAIL-GDB: proporciona un entorno de depuración basado en GNU Debugger para HSA Intermediate Layer (HSAIL)
  • HSA Runtime APIs
  • Lanzamiento de Linux amdkfd v1.6.1 para Kaveri & Carrizo

Various deprecated

editar
  • Biblioteca clFFT para transformada rápida de Fourier escrita en OpenCL
  • Biblioteca hcFFT para la transformada rápida de Fourier escrita en C++ optimizado para HCC

Disponibilidad

editar

GPUOpen están disponibles bajo la licencia MIT para el público en general a través de GitHub a partir del 26 de enero de 2016.[3]

Existe un entrelazamiento entre GPUOpen y proyectos de software libre bien establecidos y generalizados, p. Núcleo de Linux, Mesa 3D y LLVM.

Véase también

editar
  1. No es necesario implementar necesariamente el algoritmo utilizando estos ajustes preestablecidos; es posible que el implementador defina resoluciones de entrada y salida personalizadas.
  2. El factor de escala lineal utilizado para aumentar el muestreo de la resolución de entrada a la resolución de salida. Por ejemplo, una escena renderizada a 540p con un factor de escala de 2,00x tendría una resolución de salida de 1080p.
  3. La escala de renderizado lineal, en comparación con la resolución de salida, que la tecnología usa para renderizar escenas internamente antes de aumentar la muestra. Por ejemplo, una escena de 1080p con una escala de renderizado del 50 % tendría una resolución interna de 540p.

Referencias

editar
  1. a b c Tom's Hardware (15 de diciembre de 2015). «AMD GPUOpen: Doubling Down On Open-Source Development». Consultado el 24 de enero de 2016. 
  2. Maximum PC (15 de diciembre de 2015). «AMD Radeon Technologies Group Summit: GPUOpen and Software». Consultado el 24 de enero de 2016. 
  3. a b c AnandTech (15 de diciembre de 2015). «AMD's GPUOpen bundle of developer tools in 2016». Consultado el 24 de enero de 2016. 
  4. Heinz Heise (16 de diciembre de 2015). «AMDs Open-Source-Initiative GPUOpen: Direkte GPU-Kontrolle und bessere Treiber» (en alemán). 
  5. PC Games Hardware (16 de diciembre de 2015). «AMD GPU Open: Radeon-Software wird bald zu 100 % Open-Source» (en alemán). 
  6. «It's Time to Open up the GPU». Archivado desde el original el 5 de marzo de 2016. 
  7. wccftech.com (15 de diciembre de 2015). «AMD's Answer To Nvidia's GameWorks, GPUOpen Announced». Consultado el 24 de enero de 2016. 
  8. HotHardware (15 de diciembre de 2015). «AMD Goes Open Source, Announces GPUOpen Initiative, New Compiler And Drivers For Linux And HPC». Consultado el 24 de enero de 2016. 
  9. «GPUOpen Effects». GitHub. 
  10. «FidelityFX». GitHub. 20 de octubre de 2021. 
  11. «AMD FidelityFX Super Resolution is coming soon to GPUOpen - AMD GPUOpen». AMD GPUOpen (en inglés británico). 1 de junio de 2021. Consultado el 21 de marzo de 2023. 
  12. «FidelityFX Super Resolution (FSR) source code is here, along with Unity and UE4 support too! - AMD GPUOpen». AMD GPUOpen (en inglés británico). 15 de julio de 2021. Consultado el 21 de marzo de 2023. 
  13. Sommefeldt, Rys (16 de noviembre de 2021). «Release FidelityFX FSR v1.0.2 · GPUOpen-Effects/FidelityFX-FSR · GitHub». GitHub. Consultado el 23 de marzo de 2023. 
  14. «It's time for AMD FidelityFX Super Resolution 2.0 - AMD GPUOpen». AMD GPUOpen (en inglés británico). 17 de marzo de 2022. Consultado el 23 de marzo de 2023. 
  15. «It's time to see the FSR 2 source code! - AMD GPUOpen». AMD GPUOpen (en inglés británico). 22 de junio de 2022. Consultado el 23 de marzo de 2023. 
  16. «It's time to upscale FSR 2 even further: Meet FSR 2.1! - AMD GPUOpen». AMD GPUOpen (en inglés británico). 8 de septiembre de 2022. Consultado el 23 de marzo de 2023. 
  17. Sommefeldt, Rys (15 de septiembre de 2022). «Release FidelityFX FSR2 v2.1.1 · GPUOpen-Effects/FidelityFX-FSR2 · GitHub». GitHub. Consultado el 23 de marzo de 2023. 
  18. Sommefeldt, Rys (19 de octubre de 2022). «Release FidelityFX FSR2 v2.1.2 · GPUOpen-Effects/FidelityFX-FSR2 · GitHub». GitHub. Consultado el 23 de marzo de 2023. 
  19. «Don’t cross the streams! Bust more ghosts with the source code to FidelityFX Super Resolution 2.2 - AMD GPUOpen». AMD GPUOpen (en inglés británico). 16 de febrero de 2023. Consultado el 23 de marzo de 2023. 
  20. Walker, Alex (23 de junio de 2021). «AMD's FSR Only Supports 7 Games, But It's Already Super Promising». Kotaku Australia (en inglés australiano). Consultado el 11 de julio de 2021. 
  21. Mujtaba, Hassan (23 de marzo de 2022). «AMD Details FSR 2.0: NVIDIA GeForce 10 & Up Support, High-Quality Upscaling Without Machine Learning, More Quality Modes». Wccftech (en inglés estadounidense). Consultado el 24 de marzo de 2022. 
  22. «Unofficial FSR 2.0 mod arrives to several more games including Dying Light 2, RDR 2 and Death Stranding». 
  23. «GPUOpen Libraries & SDKS». GitHub. 
  24. AMD GPUOpen (19 de abril de 2016). «CodeXL 2.0 made open-source». Archivado desde el original el 27 de junio de 2018. Consultado el 30 de marzo de 2023. 
  25. AMD GPUOpen (26 de enero de 2016). «CodeXL Static Analyzer CLI». 
  26. AMD GPUOpen (26 de enero de 2016). «Create Your own GPU PerfStudio Direct3D 12 Plugin». Archivado desde el original el 9 de enero de 2019. Consultado el 30 de marzo de 2023. 
  27. AMD GPUOpen (26 de enero de 2016). «Have You Tootled Your 3D Models?». Archivado desde el original el 9 de enero de 2019. Consultado el 30 de marzo de 2023. 
  28. «Linux kernel 4.2 /drivers/gpu/drm/amd». 
  29. Heinz Heise (4 de marzo de 2015). «LiquidVR: Neues Virtual-Reality-SDK von AMD» (en alemán). 
  30. AnandTech (16 de noviembre de 2015). «AMD@SC15: Boltzmann Initiative Announced - C++ and CUDA Compilers for AMD GPUs». 
  31. Heinz Heise (17 de noviembre de 2015). «Supercomputer: AMD startet Software-Offensive "Boltzmann"» (en alemán). 
  32. 3dcenter.org (16 de noviembre de 2015). «AMDs Boltzmann-Initiative geht direkt gegen nVidias CUDA» (en alemán). 
  33. AMD (16 de noviembre de 2015). «AMD Launches 'Boltzmann Initiative'». 
  34. AMD (16 de noviembre de 2015). «A Defining Moment for Heterogeneous Computing». 

Enlaces externos

editar