SPO600 - Project Stage 3

 I used the Python tool to modify existing functions for different architectures, and it calls the GCC compiler and passes the necessary flags to enable auto vectorization for that specific code. In the final version, I implemented solution and resolves to all the limitation listed in my previous blogs. However, I was unable to overcome the permissible constraints. 

To summarize, auto vectorization is a useful technique for improving the performance of program on ARM CPUs that use SVE, SVE2, and ASIMD instructions. Auto vectorization in the C programming language can be enabled by using the GCC compiler and the appropriate flags. This can help to optimize program and take advantage of the SIMD capabilities of modern ARM processors.

I made changes to the tool's final version. The tool can be downloaded from https://github.com/puja1102/SPO600Project.

Improvements:

The previous implementation's first limitation was that it did not support exception handling. The tool's final version includes exception handling and data validation. If invalid arguments are provided while reading the arguments, the tool will display an appropriate message.

The second and most significant restriction was that stage II only accepted functions with the name "adjust channels" and a return type of void. This restriction is no longer in effect. Final version of tool accepts the function with any name and any return type, it is not limited to functions with name "adjust channels".

By removing these constraints, the tool has become more efficient, and it can now run for any function with any name and any parameters. However, I did not have enough time to work around the permitted limitations, such as making the tool work on x86 64 systems.


Comments

Popular posts from this blog

Lab 5 - Algorithm Selection Lab

SPO600 - Project Stage 2

Auto Vectorization