Posts

Showing posts from November, 2022

Project Part - 1

 The Goal of this project is as follow: " 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. " (Chris Tyler) Project Part 1 To work with the main function and function  file   I  am going to used C or C++  language as the base language. And Visual Studio Code as IDE for writing and impelling the test that is provide by our professor as follow :  https://github.com/ctyler/spo600-fall2022-project-test-code Overall Project Working : 1) Get Input from Keyboard when run. 2) Running the parameters successfully. 3) The solution of the file should be capable of changing parameters of file inside it. 4) No bugs should be there and the file can change at any moment. SOLUTION : I plan to add ifunc function in C

Lab5 Part 2 Algorithm 2

 According to the loudness factor, another algorithm simply shifted everything by an order of magnitude to the right. I haven't had time to talk about the outcomes of this algorithm with the group or with individuals, so I'm at a loss for words. I'd say it's definitely off if I had to guess which would be the best option. Multiplication takes longer than bit shifting, which is one of the reasons I say this. Why then is it so slow? This is so that the CPU doesn't merely shuffle bits around in memory but also compute values. The term implies that this is a bit shift. I would anticipate that bit shifting would also be favourable in terms of memory utilisation. Other techniques call for the lookup table to be stored and accessed somewhere in memory. Even though we're only working with 16-bit numbers, the largest possible values are 65, 536, etc., and the majority of contemporary PCs can hold 64k bits in registers, making them simple to store in registers. Without ac

Lab5 Part 1 Algorithm 1

 We spoke about how to analyse sound and programmatically scale sound input before we started the lab. The process of sound analysis is not particularly unique. Integer and floating point (decimal) numbers used to represent sound input are parsed to perform analysis. Additionally, changing the level simply involves performing an arithmetic operation on each integer contained in the sound sample. And that was the lab's main objective. The objective was not without risk, though. The easiest or most naive way was to perform the procedure by looping through all the numbers. This was a lengthy and ineffective method, though, when done on a mobile device. Because the CPU executes this repeating operation each time the user changes the volume, this drains the battery. Our task was to come up with a more effective technique to accomplish this. We have sound samples in the lab that are exclusively represented by random numbers between -65,536 and 65,536, or the range. Why those strange digi

Lab 4 - Part 1 AArch64

 This lab we are going to run simple run on loop to print some lines in the like loop0 loop1 and till 9 or 30. So the base code is given by Chris Tyler and we need to modified that code or basically clly we just need to add some code in it.  So here is the code for the loop which will go 30 times in the printing statement which is like this: x .text .globl _start min = 0 /* starting value for the loop index; note that this is a symbol (constant), not a variable */ max = 31 /* loop exits when the index hits this number (loop condition is i<max) */ ten = 10 _start: mov x19, min mov x22, ten loop: adr x1, msg mov x2, len mov x0, 1 mov x8, 64 svc 0 adr x23, msg add x19, x19, 1 udiv x20, x19, x22 msub x21, x22, x20, x19 cmp x20, 0 beq skip add x20, x20, '0' strb w20, [x23,6] skip: add

Lab 4 - Part 2 x86_64

 Hello everyone in this lab we are test some piece of code to make the loop in the AArch64 system and lets start with the base code which is given by Chris Tyler. So in this lab we just need to work with the AArch64 system and x86_64 and make use more familiar with this ssh system that is call israel and portugal which are two different system working on AArch64 an x86-64. So for the first time we need to make the code that will run on the x86_64 system which is going to print the loop from 0 to 9 and the base was given to us by Chris Tyler. So making it we have to useful but dugging is was hard enough to find one single error. so starting with the error like when i start searching i am not able to figure out which increments and loop skiping variables are going to used and then i read some notes and watch the lecture again to find it out. Now for 0 to 30 we just need to change some thing like add ,max values and add some varibale to balance it out. Like the max value should be like 31