Code Optimizer Using Advanced Matrix Extension

The Advanced Matrix Extension (AMX), a new x86 extension designed for operating on matrices with the goal of accelerating machine learning computations.

Intel’s Advanced Matrix Extensions (AMX) is a new 64-bit programming paradigm consisting of two components: A set of 2-dimensional registers (tiles) representing sub-arrays from a larger 2-dimensional memory image and an accelerator that is able to operate on tiles.

In the first stage of this project, a preprocessor will be implemented whose task is to detect and identify matrix multiplication loops within code whose execution can be optimized with Intel’s new AMX. The loops will be analyzed to identify cases of matrix multiplication. Once found, they will be classified as fit for exploiting Intel’s AMX. For these classified loops, an optimized code using Intel’s AMX will be generated by the preprocessor.

Once a working model has been implemented, efforts will be made to can improve and optimize the process. The new technique will be compared to existing solutions.

The next task will be to investigate whether it is possible to do this in real time with no preprocessing but as a part of the optimizations that are possible.

The project is research oriented in co-operation with Intel aimed for students interested in machine learning workloads implications on computer architecture.

Prerequisites: Logic Design and Introduction to Computers.

A background in computer structures/compilers will be advantage

Supervisors: Shemy, Regev and Adelman, Menachem