SPO 600 Project : Auto-vectorization with iFunc - Stage 1

smitgabani

Smit Gabani

Posted on December 9, 2022

SPO 600 Project : Auto-vectorization with iFunc - Stage 1

Objective:

The GCC compiler introduced the ‘ifunc’ extension to allow developers to create programs that can use advanced SIMD, SVE2, etc.
Our project is base on the use of ifunc and advanced SIMD, SVE2.

The goal for this project is to produce a proof-of-concept tool that will take code that meets specific conditions and automatically build it with ifunc capability to select between multiple, autovectorized versions of a function, to take advantage of the best SIMD implementation available on the CPU on which the code is running.

For a single instruction to be completed for multiple data unit different architecture have different SIMD implementations like advance SIMD, SVE and SVE2.

The tool designed by us will build 3 implementation for function.c file which wil have only one function.

The language I will be using: C

I am comfortable coding and understanding pyton code and I know python has many library that I can use. The reason I an not using C or C++ is that I am not sure I can complete the project if I face any troble while working with C++. But at last I decided to work with C

Overall Operation - Approach

I am some what confused no how to approach the problem.

Lets divide the working of the program into steps.

  1. Get input
  2. Parameters
  3. Linker function
  4. Functions for different modules
  5. will figure out in the future.

The initial process will produce output similar to gcc compiler.

gcc -c func.c -o func.o
Enter fullscreen mode Exit fullscreen mode

Challenges

Calling the linking stage multiple times during building for different modules.

💖 💪 🙅 🚩
smitgabani
Smit Gabani

Posted on December 9, 2022

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related

What was your win this week?
weeklyretro What was your win this week?

November 29, 2024

Where GitOps Meets ClickOps
devops Where GitOps Meets ClickOps

November 29, 2024

How to Use KitOps with MLflow
beginners How to Use KitOps with MLflow

November 29, 2024