This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Explicit vector style compute kernels on Bifrost G7x/G31?

Will the compute kernel compilers (OpenCL 1.2 or some future Vulkan 1.1) still support explicit vector style programming (e.g. float4, uint4, int4, half8) on the Bifrost GPUs with 4-wide execution engines?

I'm asking because I have some "embarrassingly parallel" algorithms that map well to SIMD-style vector programming but benefit from inter-lane communications.

On a scalar-per-thread design, this can be accomplished with shuffles.

But if shuffles aren't available I would prefer to use explicit vectors and permutations.

Any tips on whether this is possible on OpenCL?

Or, maybe, VK 1.1 will bring subgroup shuffles to G7x/G31?

Thanks,

-ASM

Parents
  • The OpenCL specification requires support for vector types, so they will of course still be supported. The compiler will handle any mapping to the underlying ISA (SIMD or otherwise). 

    Bifrost generally will still benefit from vector data types, in particular for:

    • Vector load from memory
    • Vector store to memory
    • Vector arithmetic if the component data type is < 32 bits wide

    Do you have a specific example you can share? It's hard to provide advice when the question is so generic.

    HTH, 
    Pete

Reply
  • The OpenCL specification requires support for vector types, so they will of course still be supported. The compiler will handle any mapping to the underlying ISA (SIMD or otherwise). 

    Bifrost generally will still benefit from vector data types, in particular for:

    • Vector load from memory
    • Vector store to memory
    • Vector arithmetic if the component data type is < 32 bits wide

    Do you have a specific example you can share? It's hard to provide advice when the question is so generic.

    HTH, 
    Pete

Children