[PATCH] drm/amdgpu/gfx: keep all compute queues on the same pipe

Alex Deucher alexdeucher at gmail.com
Wed Jul 12 15:56:06 UTC 2017


On Tue, Jul 11, 2017 at 1:23 PM, Andres Rodriguez <andresx7 at gmail.com> wrote:
> Hey Alex,
>
> Which apps are having perf problems?
>
> Also, is the issue present when the queue gets mapped to pipe0? (i.e. it the
> perf regression only happens on pipe1+)

It's a couple of OCL mandlebrot tests.  We are only seeing the
regression on Polaris 11, but it's a 40% drop.  Investigating further.

Alex

>
> Regards,
> Andres
>
> On 2017-07-11 11:13 AM, Alex Deucher wrote:
>>
>> Spreading them causes performance regressions using compute
>> queues.
>>
>> Cc: Jim Qu <jim.qu at amd.com>
>> Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
>> ---
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c | 3 ++-
>>   1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
>> index e26108a..4f6c68f 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
>> @@ -125,7 +125,8 @@ void amdgpu_gfx_compute_queue_acquire(struct
>> amdgpu_device *adev)
>>                 if (mec >= adev->gfx.mec.num_mec)
>>                         break;
>>   -             if (adev->gfx.mec.num_mec > 1) {
>> +               /* FIXME: spreading the queues across pipes causes perf
>> regressions */
>> +               if (0) {
>>                         /* policy: amdgpu owns the first two queues of the
>> first MEC */
>>                         if (mec == 0 && queue < 2)
>>                                 set_bit(i, adev->gfx.mec.queue_bitmap);
>>
>


More information about the amd-gfx mailing list