[Libclc-dev] Questions about atomics
Jeroen Ketema
j.ketema at imperial.ac.uk
Sat Sep 7 11:10:21 PDT 2013
Hi Aaron,
Thanks for your answer; it helps. I was wondering what was going on, because having just prototype of atomic_add in the generic part without an implementation was causing some problems for us.
This makes me wonder: Do you happen to know if there are any other prototypes in the generic part that do not have an implementation in the generic part?
Thanks,
Jeroen
On 7 sep. 2013, at 18:05, Aaron Watry <awatry at gmail.com> wrote:
> Hi Jeroen,
>
> I actually just committed atomic_sub and atomic_dec support yesterday :)
>
> The libclc support was waiting to be added in libclc due to missing
> support for the relevant instructions in the llvm R600 back-end. I
> finally committed that support to llvm yesterday, and then immediately
> after, I pushed the libclc support.
>
> With regards to the _addr* naming. The R600 back-end uses address
> space 1 as global, 2 is constant, 3 is local, and private is either 0
> or 4 (I obviously haven't used that one much).
>
> By defining the generic functions in terms of address space 1/2/3/4,
> we just have to write the assembly functions once, and then we just
> have to map which named address space is which ID on various hardware
> back-ends. Hence the split for the implementations in generic/ and
> the mappings defined in r600/. Theoretically, if we wanted to then
> add Nvidia/Intel/X86 support for a given function, we'd just have to
> map the correct implementation to the numbered address space needed.
>
> Hope that helps,
> Aaron
>
> On Fri, Sep 6, 2013 at 8:54 PM, Jeroen Ketema <j.ketema at imperial.ac.uk> wrote:
>>
>> Hi,
>>
>> I was looking at the code for atomics that was committed in the last two days and I'm wondering about two things. First, is there a reason that atomic_sub is not introduced in the r600 code (atomic_add is there)? Second, why is atomic_add only defined as the generic @__clc_atomic_add_addr… in the r600 code (since @__clc_atomic_add_addr… occurs in the generic code I expect the definition of atomic_add to be there too)?
>>
>> Thanks,
>>
>> Jeroen
>>
>>
>> _______________________________________________
>> Libclc-dev mailing list
>> Libclc-dev at pcc.me.uk
>> http://www.pcc.me.uk/cgi-bin/mailman/listinfo/libclc-dev
More information about the Libclc-dev
mailing list