After testing and porting a few kernels, GCN certainly lives up to expectations. Good work AMD.
However, there are two things I can't get to work. I'm using opencl but have an intermediate step that
can insert IL functionality, which in general works fine on the 7970.
However, on the 7970, the gds seems to function, i.e., all CUs can see what is written by other CUs,
*but* any data beyond offset 8 in the gds space comes back as zero. Below address 8 the data is
good. A VLIW card running the same code works properly. Is gds supported? does it use the same IL code
as before? How is gds declared in the header of the program, VLIW code uses (eg) dcl_gds_id(0) 4096.
Timer
The Tahiti compiler accepts the instruction "mov r1.x Tmr.x" from the IL code but the code does nothing.
Again, is the timer functional on the 7970?
Any help is greatly appreciated.
Many thanks.
Drallan,
Thanks for letting us know of any issues you might have.
GDS support on GCN is slightly different than GDS support on EG/NI and it has not been fully verified to the level where I can say it will always work. While we do have some tests that show it does work for values outside of what you are having a problem with, we have not yet been able to fully verify it at the same level as using other memory features on SI. Also, the timer also not working on SI is a known issue and something we are working to fix.
Micah,
Thanks for the very clear answers. Even 8 words is still useful for synchronizing CUs, which is
mostly what it is used for.
Allan