Search for question
Question

Q3. [6 Pts: 1.5, 1.5, 3. pts, 15 minutes] Conceptual questions:

1. Suppose we are building a computer system around a processor\core that is capable of

running at 500 MHz. The processor cycle time is 2ns (nanoseconds). Suppose we can

build a data cache that takes less than 2ns to respond to a read request, so a cache hit

would not slow down the processor at all, and a main memory that takes 100 ns or 50

cycles to similarly respond, forcing the processor to stall for those 50 cycles. We are

considering a range of cache sizes in our design. Suppose we chose a cache size that

would give a cache hit rate of 99%; what is the average memory access time?

Solution:

2. We want to use each thread to calculate two elements of a vector addition. Each thread

block process 2*blockDim.x consecutive elements that form two sections. All threads

in each block will first process a section first, each processing one element. They will

then all move to the next section, each processing one element. Assume that variable i

should be the index for the first element to be processed by a thread. What would be

the expression for mapping the thread/block indices to data index of the first element?

Folution:

Fig: 1