[igt-dev] [PATCH i-g-t 03/17] benchmarks/gem_wsim: fix scaling of period steps

Bernatowicz, Marcin marcin.bernatowicz at linux.intel.com
Fri Sep 29 09:31:39 UTC 2023


Hi,

On 9/29/2023 10:01 AM, Tvrtko Ursulin wrote:
> 
> On 28/09/2023 18:45, Marcin Bernatowicz wrote:
>> Period steps take scale time (-F) command line option into account.
> 
> "Make period steps.."?
> 
> "Periods steps should take.."?
> 
>> This allows to scale workload without need to modify .wsim file
>>
>> ex. having following example.wsim
>>
>> 1.VCS1.3000.0.1
>> 1.RCS.500-1000.-1.0
>> 1.RCS.3700.0.0
>> 1.RCS.1000.-2.0
>> 1.VCS2.2300.-2.0
>> 1.RCS.4700.-1.0
>> 1.VCS2.600.-1.1
>> p.16000
>>
>> we can scale the whole workload x10 with:
>>
>> gem_wsim -w example.wsim -f 10 -F 10
>>
>> -f is for batch duration steps, -F for period and delay steps
> 
> Actually I am having a little bit of a second thought here. Thinking 
> that perhaps it was deliberate to not scale periods.
> 
> Think of it like this. -f 0.5 simulates a twice as fast GPU. -F 2 
> simulates a twice as slow CPU.
> 
> In both cases if something wants to hit 60 fps, it still wants to hit 60 
> fps. What use case for scaling the period do you have in mind?
> 

That gives another view on the matter.

I thought about it more like having a common unit, so giving -F 1000 -> 
makes all CPU values (Period/Duration) are given in ms.
-f option may be used to calibrate for difference between GPU and CPU 
ex. if wrongly reported freq makes a real GPU duration 10x faster than 
CPU measured (ex. 10ms specified batch duration takes 1ms in reality) we 
can provide -f 10 and still have GPU durations correspond to CPU time.

Regards,
marcin


> Regards,
> 
> Tvrtko
> 
>> v2:
>> - apply same approach as with DELAY step (Tvrtko)
>>
>> Signed-off-by: Marcin Bernatowicz <marcin.bernatowicz at linux.intel.com>
>> ---
>>   benchmarks/gem_wsim.c | 2 ++
>>   1 file changed, 2 insertions(+)
>>
>> diff --git a/benchmarks/gem_wsim.c b/benchmarks/gem_wsim.c
>> index 42690d3d0..41557517c 100644
>> --- a/benchmarks/gem_wsim.c
>> +++ b/benchmarks/gem_wsim.c
>> @@ -1186,6 +1186,8 @@ parse_workload(struct w_arg *arg, unsigned int 
>> flags, double scale_dur,
>>   add_step:
>>           if (step.type == DELAY)
>>               step.delay = __duration(step.delay, scale_time);
>> +        else if (step.type == PERIOD)
>> +            step.period = __duration(step.period, scale_time);
>>           step.idx = nr_steps++;
>>           step.request = -1;


More information about the igt-dev mailing list