CodeXL (anteriormente AMD CodeXL ) era un conjunto de herramientas de desarrollo de software de código abierto que incluía un depurador de GPU , un perfilador de GPU, un perfilador de CPU , un analizador de cuadros gráficos y un analizador de kernel/sombreador estático.
CodeXL fue desarrollado principalmente por AMD . Con la versión 2.0, CodeXL pasó a formar parte de GPUOpen y es un software libre y de código abierto sujeto a los requisitos de la licencia MIT . Ya no se comercializa como un producto de AMD. [1]
Los generadores de perfiles de CPU y de consumo de energía se incluyeron en CodeXL hasta la versión 2.5. Ahora, estos generadores de perfiles se lanzan como parte de la herramienta uProf de AMD.
En abril de 2020, AMD actualizó el repositorio de GitHub y anunció que "CodeXL ya no está siendo desarrollado ni respaldado activamente por AMD y se está archivando" [2].
El depurador de GPU de CodeXL permite a los ingenieros depurar llamadas API y objetos de tiempo de ejecución de OpenGL y OpenCL , y depurar kernels OpenCL: establecer puntos de interrupción, recorrer el código fuente en tiempo real, ver todas las variables en diferentes núcleos de GPU durante la ejecución del kernel, identificar errores lógicos y de memoria, reducir la sobrecarga de transacciones de memoria, visualizar buffers e imágenes OpenCL/OpenGL y texturas OpenGL como imágenes o como datos de hojas de cálculo, y de esta manera mejorar la calidad general del software y optimizar su rendimiento.
El generador de perfiles de GPU de CodeXL recopila y visualiza datos de contadores de rendimiento de hardware, seguimiento de aplicaciones y ocupación del núcleo, y ofrece análisis de puntos críticos para GPU y APU de AMD . El generador de perfiles recopila datos del entorno de ejecución de OpenCL y de la propia GPU/APU durante la ejecución de los núcleos, y se puede utilizar para descubrir cuellos de botella en el rendimiento y optimizar la ejecución del núcleo.
AMD uProf reemplaza a CodeXL para funcionalidades de creación de perfiles de CPU y consumo de energía en procesadores AMD. [3]
El conjunto de perfiles de CPU de CodeXL se puede utilizar para identificar, investigar y mejorar el rendimiento de aplicaciones, controladores y software del sistema en CPU de AMD. El perfilador de CPU de CodeXL utiliza un enfoque basado en muestreo estadístico con varias técnicas y medidas de perfilado: Perfilado basado en tiempo (TBP), Perfilado basado en eventos (EBP), Muestreo basado en instrucciones (IBS) y monitores de rendimiento de hardware de CPU. El perfilador de CPU de CodeXL reemplaza a AMD CodeAnalyst .
El analizador de kernel estático de CodeXL permite a los ingenieros compilar, analizar y desensamblar el código de los shaders de DirectX , OpenGL y Vulkan y los kernels de OpenCL. La herramienta proporciona una estimación del rendimiento de cada shader/kernel en diferentes tipos de chips AMD, sin ejecutar realmente el código. De esta manera, la herramienta ayuda a realizar ajustes para lograr el mejor rendimiento en las GPU de AMD. [4] [5]
En el primer trimestre de 2017, AMD CodeXL Analyzer fue reemplazado por Radeon GPU Analyzer (RGA), manteniendo la compatibilidad con versiones anteriores. Radeon GPU Analyzer CLI es un compilador sin conexión y una herramienta de análisis de rendimiento para sombreadores DirectX, sombreadores OpenGL, sombreadores Vulkan y núcleos OpenCL. [6]
Con la versión 2.0, CodeXL HSA Profiler y HSAIL Kernel Debugger admiten el controlador de iniciativa Boltzmann en hardware GCN 1.2 (es decir, Radeon R9 Fury, Fury X y Fury Nano, y APU "Carrizo"). [1]
El analizador de cuadros puede recopilar y mostrar una línea de tiempo de cuadros para aplicaciones que utilizan Microsoft DirectX 12 o Vulkan . La vista del analizador enumera cada llamada de API que se realizó en el lado de la CPU y su comando correspondiente que se ejecutó en el lado de la GPU en una vista de línea de tiempo unificada e interconectada, así como estadísticas agregadas para el fragmento de tiempo específico seleccionado por el usuario: tiempo acumulado para cada tipo de API, número de llamadas, las 20 llamadas más largas y más.
CodeXL es compatible oficialmente con los sistemas operativos Linux y Microsoft Windows . En Windows, CodeXL está disponible como aplicación independiente y como extensión totalmente integrada de Microsoft Visual Studio .
CodeXL se utilizó con éxito para depurar Bullet . [7]
La última versión de CodeXL está disponible para descarga gratuita en la página de lanzamientos de CodeXL en GitHub.
GPU PerfStudio es la herramienta de depuración y rendimiento de AMD para aplicaciones gráficas. Inicialmente se desarrolló para soportar Direct3D y OpenGL solo en Microsoft Windows y se adaptó a Linux durante 2013 y está disponible para Linux desde fines del primer trimestre de 2014. El conjunto de herramientas se considera útil al desarrollar juegos para Steam Linux y especialmente útil al optimizar juegos para GPU AMD. GPU PerfStudio tiene perfiles de cuadros integrados, depurador de cuadros y seguimiento de API con información de sincronización de CPU.
GPU PerfStudio es compatible con Direct3D 10, Direct3D 10.1, Direct3D 11 y OpenGL 4.2. Se describe como un conjunto de herramientas de GPU ligero, sin instalación, sin cambios en el juego y con función de arrastrar y soltar . Se puede ejecutar desde una unidad USB, no necesita integración con Visual Studio, se ejecuta con ejecutables de juegos y no requiere un controlador especial ni una nueva compilación.
GPU PerfStudio 3.6 es compatible con Direct3D 12 en Windows 10 y Vulkan en Windows y Linux. [20]
GPU PerfStudio está disponible para Linux y Microsoft Windows.
En la Cumbre de desarrolladores de AMD (APU) de noviembre de 2013, Gordon Selley presentó GPU PerfStudio 2. [21]
En los SteamDevDays de febrero de 2014, Tony Hosier y Gordon Selley presentaron GPU PerfStudio 2 en un vídeo de 43 minutos. [22]
GPUPerfAPI es la biblioteca de AMD para acceder a los contadores de rendimiento de la GPU en las tarjetas gráficas y APU AMD Radeon. La utilizan GPU PerfStudio y CodeXL y también está disponible para desarrolladores externos que deseen incorporarla en sus propias aplicaciones. GPUPerfAPI es compatible con aplicaciones DirectX11, OpenGL y OpenCL. GPUPerfAPI está disponible para Linux y Microsoft Windows. [23]