%0

An assistant that adds optimizations to your code for Arm

HACO toolset automates finding optimizations in Arm code, saving huge engineering effort. It finds many profitable optimizations that are missing from LLVM, and at source level.

window image
arm

Source to Source translation

Improve parallelization add the OpenMP parallel for directive to a loop. Interchange perfectly nested loops to fit row-wise order

cilinder-desk

Compiler fine-tuner

The HACO tool searches and pick the most optimal combination of flags for your code

cilinder-desk

Intrinsic translation

The HACO tool searches and pick the most optimal combination of flags for your code

cilinder-desk

Peephole optimizations

HACO finds profitable LLVM optimizations missed by compilers. By synthesizing and caching improved code sequences, we automatically discover vector optimizations LLVM can't yet perform. This boosts performance without excessive compile time.

cilinder-desk
cylinder1cubecylinder2cubecylinder3cube
arm

Source to Source translation

Improve parallelization add the OpenMP parallel for directive to a loop. Interchange perfectly nested loops to fit row-wise order

cilinder1

Compiler fine-tuner

The HACO tool searches and pick the most optimal combination of flags for your code

cilinder2

Intrinsic translation

The HACO tool searches and pick the most optimal combination of flags for your code

cilinder3

Peephole optimizations

HACO finds profitable LLVM optimizations missed by compilers. By synthesizing and caching improved code sequences, we automatically discover vector optimizations LLVM can't yet perform. This boosts performance without excessive compile time.

cilinder4

HACO use cases:

Save efforts

Save efforts

Base layer to save engineering efforts findings improvements often missed in Arm.

Avoid Testing

Avoid Testing

Avoid testing combinations of compiler flags, and use HACO to pick the most optimal combination of flags.

Optimize

Optimize

Use HACO to automatically discover useful optimizations that LLVM cannot currently perform.

Attack problems

Attack problems

Let HACO attack problems in finding missing peephole optimizations for instructions that can be complex to understand.

Save efforts

Save efforts

Base layer to save engineering efforts findings improvements often missed in Arm.

Avoid Testing

Avoid Testing

Avoid testing combinations of compiler flags, and use HACO to pick the most optimal combination of flags.

Optimize

Optimize

Use HACO to automatically discover useful optimizations that LLVM cannot currently perform.

Attack problems

Attack problems

Let HACO attack problems in finding missing peephole optimizations for instructions that can be complex to understand.

How it works

imagen diagrama

HACO will Boost Code Performance Before, During, and After Compiling, using its Power-Ups techniques

Source-to-Source Optimizer

Obtain a version of your code that increases the effectiveness of the HACO assistant Power-Ups that follow

Intrinsic Translation

Adjust code to utilized x86 to Arm intrinsics properties. Arm NEON & SVE.

Peephole Optimizations

Intelligent solver algorithm

Finds missing optimizations compilers overlook

Compiler Fine-Tuner

Smart search of multiple combinations of compiler flags, mixing and matching flags to find the most performant one for your code.

Deep Mapping Models

Deep Mapping Models:

AI

ML

Source-to-Source Optimizer

Obtain a version of your code that increases the effectiveness of the HACO assistant Power-Ups that follow

Intrinsic Translation

Adjust code to utilized x86 to Arm intrinsics properties. Arm NEON & SVE.

Peephole Optimizations

Intelligent solver algorithm

Finds missing optimizations compilers overlook

Compiler Fine-Tuner

Smart search of multiple combinations of compiler flags, mixing and matching flags to find the most performant one for your code.

Deep Mapping Models

Deep Mapping Models:

AI

ML

Why use HACO?

Four reasons:

Productivity

Productivity

Helps evaluate the performance of your application on Arm.

Evolving

Evolving

HACO evolves continuously, leveraging past optimizations for customer benefit.

Future proofing

Future proofing

Run inference in Arm, or vector similarities with optimized CPUs.

Beyond compilation

Beyond compilation

Discover optimizations that compilers overlook.

Productivity

Productivity

Helps evaluate the performance of your application on Arm.

Evolving

Evolving

HACO evolves continuously, leveraging past optimizations for customer benefit.

Future proofing

Future proofing

Run inference in Arm, or vector similarities with optimized CPUs.

Beyond compilation

Beyond compilation

Discover optimizations that compilers overlook.

Join us in optimizing Arm workloads, cutting waste in computing.

Join us in optimizing Arm workloads, cutting waste in computing.

Unleash your Arm architecture potential with us, migrating and optimizing workloads to Arm to cute waste in computing loads

Up to

45%

Improvement

In application performance when optimizing with HACO

cube
cube
cube

3.2%

Margin Increase

From Zoom and Snowflake with optimizations in Arm-based CPUs

cube

70%

Improvement

On performance on matrix multiplications

cube

70%

Reduce

Electricity usage when running on Arm

cube
cube

@ 2023 — All rights reserved.

Designed by