|
The prefetch instruction should be issued at a time before the data is used at least as large as the L1 cache latency. You should be able to find out what that latency is for the machine you are using. I imagine that your code will have some sort of loop over the array, so you take into account the time taken per loop iteration (without cache latency), the amount of data read per iteration and the size of the L1 data cache. These figures should give you an idea of the memory bandwidth you need to sustain and hence how often you need to prefetch and how far ahead each prefetch should touch the data. This gives you somewhere to start, but your professors are correct; guessing and timing is the only way to be sure.
|