Intel Advisor
Intel Advisor | ||
---|---|---|
Información general | ||
Tipo de programa | Análisis de rendimiento de software | |
Licencia | Soporte gratuito y comercial | |
Información técnica | ||
Plataformas admitidas | Windows y Linux (solo interfaz de usuario en macOS) | |
Versiones | ||
Última versión estable | 2021.4 / 1 de octubre de 2021 ( 3 años, 2 meses y 23 días) | |
Enlaces | ||
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 la 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.[1] Es compatible con OpenMP (y el uso con MPI). La interfaz de usuario de Intel Advisor también está disponible en macOS.
Intel Advisor está disponible de forma gratuita como herramienta independiente o como parte de Intel oneAPI Base Toolkit. El soporte comercial pago opcional está disponible para oneAPI Base Toolkit.
Características
[editar]Optimización de vectorización
[editar]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 múltiples objetos en paralelo dentro de un solo núcleo de CPU. Esto puede aumentar considerablemente el rendimiento al reducir la sobrecarga del ciclo 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, identifica dónde es seguro forzar la vectorización del compilador.[2] Admite el análisis de códigos habilitados para escalar, SSE, AVX, AVX2 y AVX-512 generados por la vectorización automática de los compiladores Intel, GNU y Microsoft. También admite el análisis de códigos vectorizados "explícitamente" que usan OpenMP 4.x y versiones más recientes, así como códigos o escritos usando C vector intrínseco o lenguaje ensamblador.[3][4]
Análisis de línea de techo automatizado
[editar]Intel Advisor automatiza el modelo de rendimiento de la línea del techo propuesto por primera vez en Berkeley[5] y ampliado en la Universidad de Lisboa.[6]
El "Análisis de la línea de techo" del asesor ayuda a identificar si el bucle o la función dados están vinculados a la memoria o a la CPU. También identifica bucles optimizados que pueden tener un gran impacto en el rendimiento si se optimizan.[7][8][9][10]
Intel Advisor también proporciona una implementación de línea de techo automatizada a nivel de memoria que está más cerca del modelo clásico de línea de techo. Classical Roofline es especialmente útil para aplicaciones informáticas de alto rendimiento vinculadas a DRAM. La línea de techo del nivel de memoria del asesor analiza los datos de caché y evalúa las transacciones de datos entre diferentes capas de memoria para brindar orientación para la mejora.[11]
El análisis de techo de Intel Advisor admite código que se ejecuta en CPU o GPU.[12][13] También es compatible con 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.[14]
Threading prototyping
[editar]Los arquitectos de software agregan anotaciones de código para describir subprocesos que Advisor entiende, pero que el compilador ignora. A continuación, Advisor proyecta la escalabilidad de los subprocesos y comprueba si hay errores de sincronización. La función Advisor Threading "Suitability" ayuda a predecir y comparar la escalabilidad del SMP paralelo y las pérdidas de rendimiento para diferentes diseños de subprocesos posibles. Los informes típicos de idoneidad se muestran en la captura de pantalla de la CPU de idoneidad en el lado derecho. Advisor Suitability 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 los tiempos de ejecución paralelos y la contención de bloqueo).[15]
Descarga de modelado
[editar]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 generales para la descarga, la transferencia de datos y la programación de la ejecución de la región y señala los cuellos de botella del rendimiento.[16][17][18] 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é listo para GPU.
Uso del cliente
[editar]Intel Advisor es utilizado por Schlumberger,[19] el laboratorio nacional de Sandia y otros[20] para el diseño y la investigación de algoritmos paralelos y las capacidades de Vectorization Advisor conocidas por ser utilizadas por LRZ e ICHEC,[21] Daresbury Lab,[22] Pexip.[23]
El flujo de trabajo paso a paso es utilizado por la academia con fines educativos.[24]
Véase también
[editar]Referencias
[editar]- ↑ «Command Line Use Cases». Intel (en inglés). Consultado el 5 de enero de 2021.
- ↑ «Optimize Vectorization Aspects of a Real-Time 3D Cardiac...». Intel (en inglés). Consultado el 7 de enero de 2021.
- ↑ «HPC Code Modernization Tools».
- ↑ «Новый инструмент анализа SIMD программ — Vectorization Advisor». habr.com (en ruso). Consultado el 5 de enero de 2021.
- ↑ Williams, Samuel (Abril de 2009). «Roofline: An insightful Visual Performance model for multicore Architectures». University of Berkeley. Archivado desde el original el 6 de diciembre de 2016. Consultado el 19 de abril de 2023.
- ↑ Ilic, Aleksandar. «Cache-aware Roofline model: Upgrading the loft». Instituto de Engenharia de Sistemas e Computadores Investigação e Desenvolvimento em Lisboa.
- ↑ «Roofline Analysis in Intel Advisor 2017: youtube how-to video». YouTube.
- ↑ «Intel Advisor Roofline step-by-step Tutorial».
- ↑ «Using Roofline Model and Intel Advisor, presented by Sam Williams, Roofline performance model author».
- ↑ «Case Study: SimYog Improves a Simulation Tool Performance by 2x with...». Intel (en inglés). Consultado el 7 de enero de 2021.
- ↑ «Memory-Level Roofline Model with Intel® Advisor». Intel (en inglés). Consultado el 5 de enero de 2021.
- ↑ «CPU / Memory Roofline Insights Perspective». Intel (en inglés). Consultado el 5 de enero de 2021.
- ↑ «GPU Roofline Insights Perspective». Intel (en inglés). Consultado el 5 de enero de 2021.
- ↑ «Integer Roofline Modeling in Intel® Advisor». Intel (en inglés). Consultado el 5 de enero de 2021.
- ↑ «How to model suitability using Advisor XE 2015?».
- ↑ «Offload Modeling Resources for Intel® Advisor Users». Intel (en inglés). Consultado el 5 de enero de 2021.
- ↑ «Identify Code Regions to Offload to GPU and Visualize GPU Usage (Beta)». Intel (en inglés). Consultado el 5 de enero de 2021.
- ↑ «Offload Modeling Perspective». Intel (en inglés). Consultado el 5 de enero de 2021.
- ↑ «Schlumberger* - Parallelize Oil and Gas software with Intel Software products».
- ↑ «"Leading design" company Advisor XE case study».
- ↑ «Design Code for Parallelism and Offloading with Intel® Advisor».
- ↑ «Computer-Aided Formulation case study: getting helping hand from the Vectorization Advisor».
- ↑ «Pexip Speeds Enterprise-Grade Videoconferencing».
- ↑ «Supercomputing'2012 HPC educator with Slippery Rock University».
Enlaces externos
[editar]- Página web oficial
- "Get a Helping Hand from the Vectorization Advisor" - Hartree case study with reference to Unilever and other CAF applications
- "aixVectorize" Vectorization and Tuning workshop at RWTH Archivado el 15 de octubre de 2017 en Wayback Machine.:
- aixVectorize "HPC Codes Modernization using Intel (Vectorization) Advisor" tutorial foils Archivado el 4 de marzo de 2016 en Wayback Machine.
- aixVectorize aixVectorize labs and samplecode Archivado el 22 de diciembre de 2015 en Wayback Machine.
- Schlumberger* - Parallelize Oil and Gas software with Intel Software products
- Anonymous "leading design" company case study with Advisor XE
- Kyoto University SuperComputing center user guide on Advisor XE usage on Linux
- How to use Intel® Advisor XE 2015 to model suitability on an Intel® Xeon Phi™ coprocessor
- Intel Inspector Product Page