Reflection on the SPO600 Project

 Reflection:

Hi everyone, I am writing a reflection on SPO600 project. This project was divided into three 3 stages. In these stages, we had to develop proof-of concept tool which is used to automate the process for setup and building function using ifunc capability to use best SIMD implementation for auto-vectorization. To learn about auto-vectorization, visit this link. Here are links to stage 1, stage 2 and stage 3.

Throughout this whole project I learned a lots of things. First of all, I learned about auto-vectorization using each of SIMD implementation - Advance SIMD, SVE and SVE2. I learned about each of these in depth and how to use them and build function using these. Then another major thing I learned about was ifunc, I learned how to write a resolver function which can choose one version of function during the run time. I learned to update the ifunc in c language and working mechanism of this resolver function. Then by putting these pieces together, I came to know to use the ifunc with these three different implementation to build the final output binary file. It improved my understanding how compiler links all the output files and build the binary file. This was a fun project for me, I used python to build this tool and it was great experience to create such tool. I used python after long time, I enjoyed using python to play with strings to extract data form code and modify it and write it in files. Moreover, I learned how to run bash commands in python, makeheaders utitlity was also new to me. In stage II, I was very worried that how I would find the name of the function and extract it. But when professor discussed about makheaders it made my work very easy and I was very relieved. This was my first time for developing some tool for compiler and it was exciting experience for me. I think these types of tool are really useful. Because it takes a lots of time to manually do the setup for ifunc. This type of tool takes a huge workload off the developer, and developer do not have to worry about doing each thing manually.

Comments

Popular posts from this blog

Review of 2 Open Source Softwares

Final Implementation of SPO600 Project - Stage III

Testing for Stage II for Project