[Nouveau] NV50 compute support questions

Samuel Pitoiset samuel.pitoiset at gmail.com
Mon Nov 23 07:31:25 PST 2015



On 11/20/2015 05:29 PM, Hans de Goede wrote:
> Hi,
>
> On 20-11-15 17:07, Samuel Pitoiset wrote:
>>
>>
>> On 11/20/2015 11:36 AM, Hans de Goede wrote:
>>> Hi Samual, et al,
>>
>> Hi Hans,
>>
>>>
>>> In
>>> http://cgit.freedesktop.org/mesa/mesa/commit/src/gallium/drivers/nouveau?id=ff72440b40211326eda118232fabd53965410afd
>>>
>>>
>>> you write: "This compute support has been tested by
>>> Pierre Moreau and myself with some compute kernels."
>>>
>>> Can you provide testing instructions (and the
>>> necessary files) so that I can try to reproduce
>>> your tests ?
>>>
>>> And once I've reproduced your tests, the next
>>> question is where / how did you get the compute
>>> kernels for testing. I guess you manually wrote them ?
>>
>> Yeah, I wrote those compute kernels directly in assembly by hand.
>>
>> I already said few days ago, you have some examples in
>> src/gallium/tests/trivial/compute.c which show how to use that compute
>> support stuff with TGSI kernels and without clover.
>
> Ah, right. Ok I'll take a look at those.
>
>> Because clover is not currently able to do OpenCL -> TGSI using
>> Clang/LLVM, you can't really use your backend directly.
>
> I know I'm fine with manually copying TGSI output by llc for my first
> tests. I've the feeling I need to understand how inputs to / outputs
> from the TGSI code are handled better before I can do further work
> on the llvm TGSI backend.
>
>> An other way to achieve what you need is to copy/paste your TGSI
>> kernel in src/gallium/tests/trivial/compute.c, set up the global
>> buffers and other stuff (maybe samplers, textures and so on) yourself.
>> This is a bit painful but should work as expected.
>>
>>>
>>> As you know I'm working on a llvm tgsi backend,
>>> it actually produces some output now, if you want
>>> to take a peek it lives here:
>>> http://cgit.freedesktop.org/~jwrdegoede/llvm
>>
>> I'm currently building your TGSI branch. :-)
>
> Cool, note this is very very preliminary. This really
> is just curro's work ported to the latest llvm trunk
> without me having added anything (yet).
>
>>> Before working further on this I want to take
>>> a bottom up approach, so I want to first make
>>> sure we've working TGSI -> compute-kernel and
>>> compute-kernel -> hardware steps. So the next
>>> question is, do you know if we can go from
>>> (manually written) TGSI to a compute-kernel
>>> using say nouveau-compiler ?
>>
>> Sure, you can use nouveau-compiler to convert TGSI to NV50 IR, but as
>> I said, you can't directly execute your compute kernel without setting
>> a ton of stuff before... That's a bunch of fun! :-)
>>
>> Btw, do you still need compute support on your GK208? or did you have
>> an other card for testing ?
>
> No I've a GT 610 / GF119 card now (still need to plug it in).

Cool, note that compute support is available on tesla, fermi and kepler 
since I merged the nv50 compute ~one week ago.

Some bits are missing for tesla and fermi, but I can have look if you 
need them. Those bits are mostly related to textures, surfaces and 
samplers, but you can already launch "simple" kernels.

>
> Regards,
>
> Hans

-- 
-Samuel


More information about the Nouveau mailing list