SPO 600 Project : Auto-vectorization with iFunc - Stage 2
Smit Gabani
Posted on December 9, 2022
How to enable SVE and SVE2 on aarch64 systems:
gcc -g -O3 -c march=armv8-a+sve ...
gcc -g -O3 -c march=armv8-a+sve2 ...
How to enable SMID on aarch64 system:
gcc -g -O3 -march=armv8-a ...
I was having difficulty in deciding which language to choose. Initiall I went with pyton as I had thought it will be easy. Then as the complexity of the project increase I decide to go with C as I thought the it would be the choise as we get to use gcc the again I chose python after Chris recomended it.
My code can be found at:
https://github.com/smitgabani/spo600_project
Clone professors test code repo from;
https://github.com/ctyler/spo600-fall2022-project-test-code.git
I have used make header utility used by some of my friends.
https://github.com/bjconlan/makeheaders.git
Step 1
Start implementing 3 functions for different modules:
I started by going through some code that Chris provided and seperated the code.
Parse the string in order to get the function prototype and name. This took a lot of time.
Now I will use the header utility as mentioned above.
Next produce a code file called header.c and place the extracted prototype on top of that file.
Then get the name of the function in the test code and add a prefix to the name
for eg.
If the funtion's name is foo
make three files foo_sve
foo_sve2
foo_adSMID
.
Step 2
Make a resolver function that will have the logic to choose what implementation will be run
Step 3
Testing on VS Code:
Error are due to the architecture.
To check the output we need to run the process on israel machine as the machine supports the architecutre.
Testing on Israel SPO600 server:
Emulating different stytems using different architecture.
So far the tool has errors.
Posted on December 9, 2022
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.