Skip to content
Miguel Sozinho Ramalho edited this page Jul 2, 2018 · 8 revisions

What is Lat

Lat is a tool for code autotuning, built using LARA (a Javascript based language that supports source code transformations) and applied using the Clava tool . It is designed for C/C++. With it, coders may test multilple variants of their code dynamically and then choose the best variant to ship their code.

Lat mimics Intel Software Autotuning Tool (ISAT) behaviour for testing multiple instances of the same code. However, it is build entirely on LARA. Because of this it is platform agnostic and can be more flexible and easier to expand, both in functionalities and languages (not only C and C++).

How to start

Start by looking at our Examples, once you get a grip of how Lat works, you can read the Setup Guide and then check the API reference.

Design Flow

  1. The user specifies the Lat variable and its configurations;
  2. The user runs the autotuning tool with latInstance.tune();
  3. For each variant points 4 to 8 are executed:
  4. Insert the new variables value accordingly into the code;
  5. Insert the timer instructions in the code;
  6. Compile and execute the code;
  7. Read the time output from the execution;
  8. Save the values to the results file;
  9. Clear the generated code (if this config is enabled);
  10. Display the results.
Clone this wiki locally