![arm](./images/arm-desktop.png)
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](./images/cilinder/cilinder1.png)
Compiler fine-tuner
The HACO tool searches and pick the most optimal combination of flags for your code
![cilinder-desk](./images/cilinder/cilinder2.png)
Intrinsic translation
The HACO tool searches and pick the most optimal combination of flags for your code
![cilinder-desk](./images/cilinder/cilinder3.png)
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](./images/cilinder/cilinder4.png)
![cylinder1cube](/images/cilinder/cylinder-cubes/cylinder1cube.png)
![cylinder2cube](/images/cilinder/cylinder-cubes/cylinder2cube.png)
![cylinder3cube](/images/cilinder/cylinder-cubes/cylinder3cube.png)
![arm](./images/cilinder/cilinder-mobile/arm-mobile.png)
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](./images/cilinder/cilinder-mobile/cilinder-mobile1.png)
Compiler fine-tuner
The HACO tool searches and pick the most optimal combination of flags for your code
![cilinder2](./images/cilinder/cilinder-mobile/cilinder-mobile2.png)
Intrinsic translation
The HACO tool searches and pick the most optimal combination of flags for your code
![cilinder3](./images/cilinder/cilinder-mobile/cilinder-mobile3.png)
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](./images/cilinder/cilinder-mobile/cilinder-mobile4.png)
HACO use cases:
![Save efforts](/images/use-cases/imagex2.png)
Save efforts
Base layer to save engineering efforts findings improvements often missed in Arm.
![Avoid Testing](/images/use-cases/imagex3.png)
Avoid Testing
Avoid testing combinations of compiler flags, and use HACO to pick the most optimal combination of flags.
![Optimize](/images/use-cases/imagex4.png)
Optimize
Use HACO to automatically discover useful optimizations that LLVM cannot currently perform.
![Attack problems](/images/use-cases/imagex5.png)
Attack problems
Let HACO attack problems in finding missing peephole optimizations for instructions that can be complex to understand.
![Save efforts](/images/use-cases/imagex2.png)
Save efforts
Base layer to save engineering efforts findings improvements often missed in Arm.
![Avoid Testing](/images/use-cases/imagex3.png)
Avoid Testing
Avoid testing combinations of compiler flags, and use HACO to pick the most optimal combination of flags.
![Optimize](/images/use-cases/imagex4.png)
Optimize
Use HACO to automatically discover useful optimizations that LLVM cannot currently perform.
![Attack problems](/images/use-cases/imagex5.png)
Attack problems
Let HACO attack problems in finding missing peephole optimizations for instructions that can be complex to understand.
How it works
![imagen diagrama](/_next/static/media/image.ff7bc5a6.png)
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](/images/why-use/imageA.png)
Productivity
Helps evaluate the performance of your application on Arm.
Evolving
HACO evolves continuously, leveraging past optimizations for customer benefit.
Future proofing
Run inference in Arm, or vector similarities with optimized CPUs.
Beyond compilation
Discover optimizations that compilers overlook.
![Productivity](/images/why-use/imageA.png)
Productivity
Helps evaluate the performance of your application on Arm.
Evolving
HACO evolves continuously, leveraging past optimizations for customer benefit.
Future proofing
Run inference in Arm, or vector similarities with optimized CPUs.
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](/images/join-us/join-us-home/ellipse.png)
![cube](/images/join-us/join-us-home/circle-desktop.png)
![cube](/images/join-us/join-us-home/circle.png)
3.2%
Margin Increase
From Zoom and Snowflake with optimizations in Arm-based CPUs
![cube](/images/cubes-camera.png)
70%
Improvement
On performance on matrix multiplications
![cube](/images/join-us/join-us-home/fors.png)
70%
Reduce
Electricity usage when running on Arm
![cube](/images/join-us/join-us-home/graph.png)
![cube](/images/join-us/join-us-home/graph-mobile.png)