Question: Consider the following code, which multiplies two vec - tors that contain single - precision complex values: for ( i = 0 ;i < 3

Consider the following code, which multiplies two vec-
tors that contain single-precision complex values:
for (i=0;i<300;i++){
c_re[i]= a_re[i]* b_re[i]- a_im[i]* b_im[i];
c_im[i]= a_re[i]* b_im[i]+a_im[i]* b_re[i];
}
Assume that the processor runs at 700MHz and has a maximum vector length of 64. The load/store unit has a start-up overhead of 15 cycles; the multiply unit, 8 cycles; and the add/ subtract unit, 5 cycles.
a.What is the arithmetic intensity of this kernel? Justify your answer.
b.Convert this loop into RV64V assembly code using strip mining.
c.[20]<4.2>Assuming chaining and a single memory pipeline, how many
chimes are required? How many clock cycles are required per complex result
value, including start-up overhead?
d.If the vector sequence is chained, how many clock cycles are
required per complex result value, including overhead?
e.Now assume that the processor has three memory pipelines and
chaining. If there are no bank conflicts in the loop's accesses, how many clock
cycles are required per result?

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!