[Mesa-dev] [PATCH 0/3] cl workdim v2
Tom Stellard
tom at stellard.net
Thu Aug 7 08:15:02 PDT 2014
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.
-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
More information about the mesa-dev
mailing list