Intel Advisor (también conocido como " Advisor XE ", " Vectorization Advisor " o " Threading Advisor ") es una herramienta de análisis y asistencia de diseño para vectorización SIMD , subprocesos, uso de memoria y optimización de descarga de GPU. La herramienta es compatible con los lenguajes C, C ++, Data Parallel C ++ (DPC ++), Fortran y Python. Está disponible en los sistemas operativos Windows y Linux en forma de herramienta GUI independiente, complemento de Microsoft Visual Studio o interfaz de línea de comandos. [2] Es compatible con OpenMP (y el uso con MPI ). La interfaz de usuario de Intel Advisor también está disponible en macOS .
Desarrollador (es) | Productos Intel para desarrolladores |
---|---|
Lanzamiento estable | 2021.1.1 / 8 de diciembre de 2020 [1] |
Sistema operativo | Windows y Linux (solo interfaz de usuario en macOS) |
Tipo | Perfilador |
Licencia | Soporte comercial y gratuito |
Sitio web | https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/advisor.html |
Intel Advisor está disponible de forma gratuita como herramienta independiente o como parte del kit de herramientas base oneAPI de Intel . El soporte comercial de pago opcional está disponible para oneAPI Base Toolkit.
Características
Optimización de vectorización
La vectorización es la operación de instrucciones de datos múltiples de instrucción única (SIMD) (como Intel Advanced Vector Extensions e Intel Advanced Vector Extensions 512) en varios objetos en paralelo dentro de un solo núcleo de CPU. Esto puede aumentar en gran medida el rendimiento al reducir la sobrecarga del bucle y hacer un mejor uso de las múltiples unidades matemáticas en cada núcleo.
Intel Advisor ayuda a encontrar los bucles que se beneficiarán de una mejor vectorización e identifica dónde es seguro forzar la vectorización del compilador. [3] Admite el análisis de códigos escalares, SSE , AVX , AVX2 y AVX-512 habilitados generados por la autovectorización de compiladores de Intel , GNU y Microsoft . También admite el análisis de códigos vectorizados "explícitamente" que utilizan OpenMP 4.xy versiones más recientes, así como códigos o escritos utilizando intrínsecos vectoriales C o lenguaje ensamblador . [4] [5]
Análisis automatizado de la línea del techo
Intel Advisor automatiza el modelo de rendimiento de la línea de techo propuesto por primera vez en Berkeley [6] y ampliado en la Universidad de Lisboa. [7]
El asesor " Roofline Analysis " ayuda a identificar si un bucle / función determinado está vinculado a la memoria o la CPU. También identifica bucles suboptimizados que pueden tener un gran impacto en el rendimiento si se optimizan. [8] [9] [10] [11]
Intel Advisor también proporciona una implementación automatizada de la línea de techo a nivel de memoria que se acerca más al modelo clásico de Roofline. Classical Roofline es especialmente fundamental para las aplicaciones informáticas de alto rendimiento que están vinculadas a DRAM. La línea de techo del nivel de memoria del asesor analiza los datos de la caché y evalúa las transacciones de datos entre las diferentes capas de memoria para proporcionar una guía de mejora. [12]
El análisis de la línea de techo de Intel Advisor admite código que se ejecuta en CPU o GPU. [13] [14] También admite aplicaciones basadas en números enteros, que se utilizan mucho en aprendizaje automático, dominios de big data, aplicaciones de bases de datos, aplicaciones financieras como criptomonedas. [15]
Prototipos de subprocesos
Los arquitectos de software agregan anotaciones de código para describir los subprocesos que Advisor entiende, pero que el compilador los ignora. Advisor luego proyecta la escalabilidad del subproceso y comprueba si hay errores de sincronización. La función Advisor Threading " Adecuado " ayuda a predecir y comparar la escalabilidad SMP paralela y las pérdidas de rendimiento para diferentes diseños de subprocesos posibles. Los informes de idoneidad típicos se muestran en la captura de pantalla de la CPU de idoneidad en el lado derecho. La idoneidad del asesor proporciona capacidades de modelado del tamaño del conjunto de datos (espacio de iteración) y desglose de las penalizaciones de rendimiento (exponiendo el impacto negativo causado por el desequilibrio de carga , la sobrecarga de tiempos de ejecución paralelos y la contención de bloqueo). [dieciséis]
Modelado de descarga
Advisor agrega la función de modelado de rendimiento de descarga de GPU en la versión 2021. Recopila las características de rendimiento de la aplicación en una plataforma de referencia y crea un modelo de rendimiento analítico para la plataforma de destino (modelada).
Esto proporciona una estimación de la aceleración del rendimiento en las GPU de destino y estimaciones de gastos generales para la descarga, la transferencia de datos y la ejecución de la región de programación, y señala los cuellos de botella en el rendimiento. [17] [18] [19] Esta información puede servir para elegir la estrategia de descarga: seleccionar regiones para descargar y anticipar la posible reestructuración del código necesaria para que esté lista para la GPU.
Uso del cliente
Intel Advisor es utilizado por Schlumberger , [20] Sandia national lab, y otros [21] para diseño e investigación de algoritmos paralelos y capacidades de Vectorization Advisor que se sabe que utilizan LRZ e ICHEC , [22] Daresbury Lab , [23] Pexip. [24]
La academia utiliza el flujo de trabajo paso a paso con fines educativos. [25]
Ver también
- Inspector de Intel
- Generador de perfiles Intel VTune
- Kit de herramientas base Intel oneAPI
- Intel Developer Zone (Intel DZ; soporte y discusión)
Referencias
- ^ "Notas de la versión de Intel® Advisor y nuevas funciones" .
- ^ "Casos de uso de la línea de comandos" . Intel . Consultado el 5 de enero de 2021 .
- ^ "Optimizar los aspectos de vectorización de un corazón 3D en tiempo real ..." Intel . Consultado el 7 de enero de 2021 .
- ^ "Herramientas de modernización de código HPC" (PDF) .
- ^ "Новый инструмент анализа SIMD программ - Asesor de vectorización" . habr.com (en ruso) . Consultado el 5 de enero de 2021 .
- ^ Williams, Samuel (abril de 2009). "Roofline: Un modelo de rendimiento visual perspicaz para arquitecturas multinúcleo" (PDF) . Universidad de Berkeley .
- ^ Ilic, Aleksandar. "Modelo de línea de techo con memoria caché: Actualización del desván" (PDF) . Instituto de Engenharia de Sistemas e Computadores Investigação e Desenvolvimento em Lisboa .
- ^ "Análisis de la línea de techo en Intel Advisor 2017: video instructivo de youtube" .
- ^ "Tutorial paso a paso de Intel Advisor Roofline" .
- ^ "Utilizando Roofline Model e Intel Advisor, presentado por Sam Williams, autor del modelo de rendimiento de Roofline" .
- ^ "Caso de estudio: SimYog mejora el rendimiento de una herramienta de simulación en 2x con ..." Intel . Consultado el 7 de enero de 2021 .
- ^ "Modelo de línea de techo de nivel de memoria con Intel® Advisor" . Intel . Consultado el 5 de enero de 2021 .
- ^ "Perspectiva de CPU / Memory Roofline Insights" . Intel . Consultado el 5 de enero de 2021 .
- ^ "Perspectiva GPU Roofline Insights" . Intel . Consultado el 5 de enero de 2021 .
- ^ "Modelado de línea de techo de enteros en Intel® Advisor" . Intel . Consultado el 5 de enero de 2021 .
- ^ "¿Cómo modelar la idoneidad con Advisor XE 2015?" .
- ^ "Descargar recursos de modelado para usuarios de Intel® Advisor" . Intel . Consultado el 5 de enero de 2021 .
- ^ "Identificar regiones de código para descargar a GPU y visualizar el uso de GPU (Beta)" . Intel . Consultado el 5 de enero de 2021 .
- ^ "Descargar perspectiva de modelado" . Intel . Consultado el 5 de enero de 2021 .
- ^ "Schlumberger *: paralelizar el software de petróleo y gas con los productos de software Intel" (PDF) .
- ^ " " Líder en diseño "compañía de estudio Asesor XE caso" (PDF) .
- ^ http://software.intel.com/en-us/intel-advisor-xe/reviews
- ^ "Estudio de caso de formulación asistida por computadora: ayuda del asesor de vectorización" .
- ^ "Pexip acelera las videoconferencias de nivel empresarial" (PDF) .
- ^ "Educador de HPC de supercomputación'2012 con Slippery Rock University" .
enlaces externos
- Página web oficial
- "Obtenga una mano amiga del asesor de vectorización": estudio de caso de Hartree con referencia a Unilever y otras aplicaciones de CAF
- Taller de vectorización y ajuste "aixVectorize" en RWTH :
- aixVectorize "Modernización de códigos HPC usando Intel (Vectorization) Advisor" hojas de tutorial
- aixVectorize aixVectorize laboratorios y código de muestra
- Schlumberger *: paralelice el software de petróleo y gas con los productos de software Intel
- Estudio de caso anónimo de una empresa de "diseño líder" con Advisor XE
- Guía del usuario del centro de supercomputación de la Universidad de Kyoto sobre el uso de Advisor XE en Linux
- Cómo utilizar Intel® Advisor XE 2015 para modelar la idoneidad en un coprocesador Intel® Xeon Phi ™
- Página del producto Intel Inspector