Hello everyone,
I can't understand what a global buffer is. I read from the manual that Global buffer are not available on AMD R600 cards but they are available on R670 and I know they will be available on AMD R700. But:
1. What is a global buffer? Why could I need that?
2. If the problem is about binding a part of the output buffer (i.e. a domain) to a specific kernel/Stream-Operator, I guess we may bind more domains to the same kernel through the code and also we could bind more kernels to the same domain. Does it give the same funcionality (but with more code) than Global buffers?
2. Will "having or not having global buffers" change my code when I use Brook+?
Thanks a lot.
P.D. You can read the following paragraph from the Programming Guide document (page 34):
Global Buffer
The AMD R670 DPP architecture introduces an extremely powerful new feature called the Global Buffer. As we had seen before, the output position to which the DPP program can write its output values is implicit in the current position in the execution domain being processed. The Global Buffer relaxes this limitation by providing applications with the flexibility to read from and write to arbitrary locations in input buffers and output buffers respectively….
Note the following important limitations with global buffers in CAL:
• Global buffers are available on the AMD R670 DPPs only and will not work on the R600 DPP.
…
rytal
so r600 has scatter and gather operations implemented in a different way than the r670 which implement these operations using global buffers. Is it correct?
Thanks a lot for helping me to understand.