Posts

Showing posts from April, 2022

SPO600 - Final Thoughts

Hey here's a last minute blog post to try and bump up the number of blog posts for April. It's really just a sort of a farewell to this course and some of my thoughts on it.  Overall this course was really neat. I had never worked with assembly language code before and it was certainly something. Honestly it feels really restrictive and generally difficult to work with but it was definitely an enjoyable experience. Though I can't say it's something I want to continue in. But learning more about the compiler and it's optimizations is definitely something I'll take away from this course. I never had the compiler explained to me in any depth before, hell I didn't even realize -Wall meant turning on all warnings. I just always read it very literally as wall and gave it no thought. It was always just something I was told to type to run my program but no one had ever offered any deeper explanation into it (nor did I even think to ask) so it was a cool thing to lea

SPO600 Project - Stage 3: Analysis

  Stage 3 Summary This is my summary post for Stage 3 of the Winter 2022 SPO600 Project. This post will be an analysis of the changes I made to SoX , command line utility that can convert various formats of computer audio files in to other formats. My changes were to implement SVE2 optimizations using autovectorizations. To see the outline for this project click  here . To see my previous blog posts on this project, see the links below. Stage 1 Summary Stage 2 Summary Here are some more useful links: This  is my git repo where I store some of my tests. It is seperated in two folders, changes and noChanges. The former being files created with SoX with my changes active, and the latter being files I made with none of my changes active. Included in these are audio files I converted, and disassemblies of two files where SVE2 instructions were implemented.  This  is my git repo of SoX, which I'm actively making my changes in. Disassembly Analysis In stage 2 to check that my code worked

SPO600 Project - Stage 2: Implementation

 Stage 2 Summary This is my summary post for Stage 2 of the Winter 2022 SPO600 Project. To see my Stage 1 post click here . To see the outline for this project click here . A quick summary of my Stage 1 was I planned to implement SVE2 optimizations in SoX  by using autovectorization. In this stage I will be attempting to implement those changes.  Here are some more useful links: This is my repo where I store the audio files I've made to test SoX. The noChanges folder is for audio files converted before my changes, and the changes folder is for audio files converted after my changes. This is my repo of SoX, which I'm actively making my changes in. Step 1: Implementing Changes First step: implementing those changes. Since I've chosen to do autovectorization this part is honestly a bit quick. I change the CFLAGS variable in SoX's configure script from optimization level 2 to level 3, and add an option to include SVE2 extensions. The original CLFAGS value and the updated