[Piglit] [PATCH] cl: Add test for CSR VGPRs caused by SGPR spilling

Jan Vesely jan.vesely at rutgers.edu
Tue Aug 14 14:23:24 UTC 2018


On Mon, 2018-08-13 at 20:06 -0400, Jan Vesely wrote:
> On Mon, 2018-08-13 at 23:29 +0300, Matt Arsenault wrote:
> > > On May 8, 2018, at 18:45, Jan Vesely <jan.vesely at rutgers.edu> wrote:
> > > 
> > > On Tue, 2018-05-08 at 13:28 +0300, Matt Arsenault wrote:
> > > > > On Apr 8, 2018, at 19:56, Jan Vesely <jan.vesely at rutgers.edu> wrote:
> > > > > 
> > > > > On Fri, 2018-04-06 at 00:49 -0400, Matt Arsenault wrote:
> > > > > > ping
> > > > > 
> > > > > I'll need to setup the rocm stack to test this. It will take some time.
> > > > > It should work with clover as well (modulo bugs; asm parser, function
> > > > > calls, ...), right?
> > > > > 
> > > > > Jan
> > > > 
> > > > I thought calls were broken in general with clover because of the
> > > > missing link step? Besides that it should work
> > > 
> > > Linking works (both linking with libclc and cl-1.2 clLinkProgram) it
> > > just happens at IR level (if you consider that linking) so all function
> > > calls can be inlined.
> > > 
> > > The problem is that llvm backend generates relocation for function
> > > calls. This relocation is not handled by clover (you could call this
> > > 'calls are broken in general').
> > > 
> > > I see two ways to fix this;
> > > a) fix llvm to use fixup instead of relocation for internal function
> > > calls.
> > > b) fix clover to handle the function call relocation.
> > > 
> > > I tried a) but a simple
> > > "|| (GV->getLinkage() == GlobalValue::InternalLinkage)"
> > > in shouldEmitFixup() is not enough (the fixup value looks wrong)
> > > 
> > > I still think that a) is preferable, but now that 6.0 is out with the
> > > breakage we'll need to implement b) anyway.
> > > 
> > > I'll try to find some time to dig a bit more into this, but it's tricky
> > > since wrong jump leaves the GPU in unrecoverable state that needs
> > > manual power cycling on reboot.
> > > 
> > > Jan
> > > > 
> > > > -Matt
> > 
> > 
> > ping. Should this just skip the clover platform for now?
> 
> this already skips clover due to device regexp (gfx). I just want to
> see it run (pass or fail) before stamping it.
> It can be either clover (with function calls fixed and changed device
> regexp) or other OCL implementation.
> Given how user-hostile to rocm-ocl setup is and that -pro version
> segfaults, getting clover to support relocations is more likely.

I managed to get ROCm opencl running (its overall piglit situation is 
unimpressive [0]) and the test works.

LGTM.

Jan

[0] http://paul.rutgers.edu/~jv356/piglit/gcn-latest-3/problems.html
> 
> Jan

-- 
Jan Vesely <jan.vesely at rutgers.edu>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part
URL: <https://lists.freedesktop.org/archives/piglit/attachments/20180814/334c74af/attachment.sig>


More information about the Piglit mailing list