[LLVMdev] [AMDGPU][PATCH 0/3] barriers/memory-fences related additions

Adrian Prantl aprantl at apple.com
Fri Aug 22 09:20:08 PDT 2014


> On Aug 21, 2014, at 5:12 PM, Hilloulin Damien <damien.hilloulin at supelec.fr> wrote:
> 
> Hello LLVM developers,
> 
> This serie of patches aims at defining the new intrinsics necessary to my libclc
> serie of patches to implement barriers/memory fences on AMDGPUs.
> This patch serie only provides stubs implementations of the necessary intrinsics.
> For example, on evergreen hardware, we would need to modify the read/writes
> surrounding operations (placed before or in the same loop) so that they make
> an ACK when completed.
> On Evergreen and SI, everything is lowered to a barrier instruction in fact (for
> now).
> I plan to add the necessary transformations in a following serie of patches.
> 
> Tested on Evergreen (Cedar) only.
> 
> (It's my first patches to an open-source project, so don't hesitate to point me my
> mistakes/errors/indentation problems etc :) ).

To point out the obvious, patches should always be accompanied by testcases that exercise the new functionality.

thanks,
adrian
> 
> Sincerely,
> Damien Hilloulin.
> 
> [1/3] Addition of the new intrinsics in AMDGPUIntrinsics.td
>    This patch adds the definitions of the intrinsics used for
>    barriers/memory fences support.
> [2/3] Stubs implementation of the new intrinsics on Evergreen
>    This patch adds some stubs to provide a first implementation of the
>    intrinsics for barriers and memory fences on EG. The barrier.nofence()
>    intrinsic is the only intrinsic correctly implemented (for sure)
>    with this patch. Maybe the barrier.local() intrinsic can be
>    considered ok like this as the LDS memory is atomic. The other
>    intrinsics need to use WAIT_ACK in some way and that we modify
>    the surrounding memory operations with ACK.
> [3/3] Stubs implementation of the new intrinsics on Southern_Islands
>     This patch is a first implementation of the newly added
>     intrinsics for barriers/memory fences on SI. For ultra-simplicity, every
>     intrinsic is lowered to a barrier with no fence.
> 
> lib/Target/R600/AMDGPUIntrinsics.td      | 11 +++++
> lib/Target/R600/EvergreenInstructions.td | 69 +++++++++++++++++++++++++++++++-
> lib/Target/R600/SIInstructions.td        | 16 +++++++-
> 3 files changed, 94 insertions(+), 2 deletions(-)
> 
> -- 
> 1.9.1
> 
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev




More information about the llvm-dev mailing list