[Mesa-dev] [PATCH 0/3] cl workdim v2

Francisco Jerez currojerez at riseup.net
Fri Aug 8 07:54:38 PDT 2014


Tom Stellard <tom at stellard.net> writes:

> On Thu, Aug 07, 2014 at 04:02:40PM +0300, Francisco Jerez wrote:
>> Jan Vesely <jan.vesely at rutgers.edu> writes:
>> 
>> > This respin includes Francisco's approach of providing implicit
>> > in the arg vector passed from clover, and Tom's idea of appending
>> > implicit args after the kernel args.
>> >
>> 
>> Hmmm...  Maybe it would make sense to add some sort of versioning
>> (e.g. as part of the target triple) to the binary interface between
>> clover and the kernel instead, so we can handle this sort of
>> non-backwards compatible changes and the compiler back-end and libclc
>> have some way to find out whether some specific feature is available and
>> e.g. some specific extension should be enabled.
>> 
>
> I was thinking the way to do this would be to use calling conventions
> on the kernel functions to specify which binary interface to use.
> However, I don't want to change the binary interface right now, because
> it is still missing a lot of things, and I don't want to have to change
> it every time we add something new.
>
> I think we should keep the current interface of:
> Offset                   | Data
> -------------------------|------------------
> 0                        : Kernel Arguments
> sizeof(Kernel Inputs)    : work_dim
> sizeof(Kernel Inputs) + 4: ????
> ...
>
> We can always revisit this once clover is more mature and we think
> we have a binary interface that won't change. Although, personally I
> prefer adding implicit inputs to the end of the kernel arguments rather
> than having of them somewhere else.
>

Right, that sounds reasonable to me.

Thanks.

> -Tom
>
>> > I assumed it's not safe to modify exec.input, so the input vector is copied
>> > before appending work dim.
>> >
>> 
>> Why wouldn't it be safe?  You just need to make sure they're appended
>> before the compute state is created.
>> 
>> > Passes get-work-dim piglit on turks without any regression,
>> > I have not tested SI as I don't have the hw.
>> >
>> > jan
>> >
>> >
>> >
>> >
>> > Jan Vesely (3):
>> >   gallium: Pass input data size to launch_grid
>> >   clover: Add work dimension implicit param to input
>> >   r600,radeonsi: Copy implicit args provided by clover
>> >
>> >  src/gallium/drivers/ilo/ilo_gpgpu.c               |   2 +-
>> >  src/gallium/drivers/nouveau/nvc0/nvc0_compute.c   |   2 +-
>> >  src/gallium/drivers/nouveau/nvc0/nvc0_context.h   |   4 +-
>> >  src/gallium/drivers/nouveau/nvc0/nve4_compute.c   |   2 +-
>> >  src/gallium/drivers/r600/evergreen_compute.c      |  14 +-
>> >  src/gallium/drivers/r600/evergreen_compute.h      |   1 -
>> >  src/gallium/drivers/radeonsi/si_compute.c         |   6 +-
>> >  src/gallium/include/pipe/p_context.h              |   2 +-
>> >  src/gallium/state_trackers/clover/core/kernel.cpp | 162 ++++++++++++----------
>> >  src/gallium/tests/trivial/compute.c               |  40 +++---
>> >  10 files changed, 122 insertions(+), 113 deletions(-)
>> >
>> > -- 
>> > 1.9.3
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 212 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20140808/e6ac86a3/attachment.sig>


More information about the mesa-dev mailing list