Intel AdvisorIntel Corporation
Design code for efficient vectorization, threading, and offloading to accelerators.
Vendor
Intel Corporation
Company Website




Product details
Design High-Performance Software
Intel® Advisor is a design and analysis tool for developing performant code. The tool supports C, C++, Fortran, SYCL*, OpenMP*, OpenCL™ code, and Python*. It helps with the following:
- Performant CPU code: Design your application for efficient threading, vectorization, and memory use.
- Efficient GPU offload: Identify parts of the code that can be profitably offloaded. Optimize the code for compute and memory.
Features
- **Roofline Analysis for CPUs: **Optimize your code for memory and compute. With an automated Roofline Analysis, you can: - Get a visual representation of application performance headroom against hardware limitations. - Gain insight into an effective optimization roadmap: - Identify high-impact optimization opportunities - Detect and prioritize memory, cache, or compute bottlenecks by performance gain and understand their likely causes - Visualize optimization progress.
- **Roofline and Performance Insights for GPUs: **Get actionable advice for performant GPU code. In addition to the Roofline Analysis for kernels, you can: - Get specific, actionable recommendations to design code that runs optimally on GPUs. - See the CPU and GPU code performance side-by-side with a unified dashboard. - Discover GPU application performance characterization, such as bandwidth sensitivity, instruction mix, and cache-line use.
- **Offload Modeling: **Understand if your code benefits from GPU porting or how much performance acceleration your GPU code can get from moving to a next-generation GPU. You can: - Pinpoint offload opportunities where it pays off the most. - Project the performance on a GPU. - Identify bottlenecks and potential performance gains. - Get guidance for optimizing a data transfer between host and target devices.
- **Vectorization Optimization: **Quickly find high-impact vectorization opportunities to safely speed up your application. - Find loops that will benefit from better vectorization. - Identify where it is safe to force compiler vectorization. - Pinpoint memory-access issues that may cause slowdowns. - Get actionable user code-centric guidance to improve vectorization efficiency.
- **Thread Prototyping: **Swiftly model, tune, and test the performance of multiple threading designs without disrupting development. - Identify issues and fix them before implementing parallelism. - Add threading to C, C++, C#, and Fortran code. - Prototype the performance impact of different threaded designs and project scaling on systems with larger core counts to identify potential scaling without disrupting development or implementation. - Find and eliminate data-sharing issues during design (when they're less expensive to fix).