Just installed the new SDK 2.8 and i cant see CAL header files:
In all previous versions files are exists,
CAL is deprecated... Those headers weren't changed at all since years, anyways...
But we still have the aticalrt.dll, though.
Well, would be good to have CAL support in further Catalist versions too.
OpenCL is nice, but don't need to forget about IL. Atleast for backward compatability.
Imo AMD_IL maps very good to VLIW architecture, you have lot's of control over hardware with it.
But GCN is a much different architecture. It's a combination of a vector and a scalar 'CPU', and you just can't address them individually from an IL program. With the scalar code you can do the same things as you can do with an x86, for example: jmp/call/ret or you can have a stack too push/pop, even selfmodifying code is possible, since you can jump to any address in memory So that's just not what AMD_IL was invented for...
IL is as far from GCN in terms of low level coding as OpenCL and on top of that IL code is hard to read/maintain.
(Btw on the 7970 with the new drivers you can't use the UAV like you did on VLIW hardware, it's a bug or something when you have an UAV and a CB, and the uav's resource constant is invalid, thus the kernel will crash when you try to access that uav. Funny that you can write data on the CB instead. You'll have to learn how OpenCL does it, and I guess that will be incompatible with the VLIW cards.)
realhet wrote: (Btw on the 7970 with the new drivers you can't use the UAV like you did on VLIW hardware, it's a bug or something when you have an UAV and a CB, and the uav's resource constant is invalid, thus the kernel will crash when you try to access that uav. Funny that you can write data on the CB instead. You'll have to learn how OpenCL does it, and I guess that will be incompatible with the VLIW cards.)
Do you mean recent drivers like 12.9--12.11 ? or new ones in the 12.8 SDK?
I recently noticed that opencl uav/cb information given to a gcn kernel can change a lot when adding additional constant buffers. With fewer constant buffers the compiler often uses one uav pointer table and individual pointers for constant buffers. With more constant buffers, it switches to one constant buffer pointer table and individual pointers for multiple uavs. This can cause trouble for custom user assembled/compiled gcn kernels.
Not sure it's the same thing but it's worth noting for gcn hacking
Here's that 7970 issue in detail -> http://devgurus.amd.com/thread/159237
I only used 2 buffers (uav+cb), It didn't generated ptrTables, I've checked that.
Simply the UAV res const was messed up so badly that it forced the card to freeze when used.
And this feature was active from the second catalyst driver for the 7xxx. So generally you can't write memory with IL unless you patch it to write into the working CB instead. Also CAL's kernel overlap was broken in the 3rd(?) driver. The best driver for CAL+7970 is the first one (11-12 79xx exclusive). But this forced me to leave IL (on 7xxx) and look for other language which is officially hardwarely supported.
Retrieving data ...