cancel
Showing results for 
Search instead for 
Did you mean: 

Archives Discussions

roddomi
Journeyman III

How to bind a uav arena in Catalyst 10.9

Hi,

I just updated my Catalyst driver to version 10.9 and I am having problems with:

calModuleGetName(&uav1Name, context, module, "uav1")

which is declare as 'dcl_arena_uav_id(1)' in the module. Did something change between Catalyst 10.4 and 10.9 in the way to bind a uav arena?

Thank you.

0 Likes
4 Replies
malcolm3141
Journeyman III

Only one arena UAV is supported, and for some reason AMD always calls that one uav8, no matter what ID you give it in IL.

Malcolm

0 Likes

Roddomi, there has been a major change in how Arena UAV's are used in SDK 2.2. There are now 1024 arena UAV id's that are supported, however, they are virtual UAV id's used to let the compiler know different memory segments. They all alias to the same hardware UAV's(8-10) which support dword, short and byte access respectively. However, UAV's 9 and 10 are setup for you when you bind UAV 8, so you only need to bind UAV 8. So for example you have a kernel with 3 different pointers, you can create 3 arena UAV's in the IL. However, they all must point to the same memory resource, but different offsets, 256 byte aligned, within that memory resource. What his allows the compiler to do is to optimize the different segments of memory differently. So if segment 1 uses bytes and dwords, segment 2 uses dwords, then segment 1 memory access will utilize the complete path and segment 2 access will use the fast path.

I know our documentation here is lacking, will look into improving it for the upcoming release.
0 Likes

Micah,

Thanks for the detailed answer. Right now I use one UAV for all dword accesses and one Arena for everything else (short/byte). According to your explanation, the UAV should be able to use the fast path while the arena should use the complete path. Am I right?

0 Likes

That is correct.
0 Likes