Hi, aobut kernels scheduling

55 views
Skip to first unread message

jizhen wei

<wish.all.healthy@gmail.com>
unread,
Aug 15, 2022, 10:36:34 PM8/15/22
to accel-sim
Hi, I want to know what scheduling method GPGPU-Sim uses for kernels.

Thanks.

Junrui Pan

<panjunrui100@gmail.com>
unread,
Aug 16, 2022, 11:03:55 PM8/16/22
to accel-sim
Hi, 

If you are referring to the concurrent kernel model, it's only functional in the PTX mode. The scheduling is round robin. We are working on a concurrent model for SASS model but not yet. 

Thanks. 

Junrui Pan

<panjunrui100@gmail.com>
unread,
Aug 19, 2022, 4:40:33 PM8/19/22
to accel-sim
Apologies my previous explanation was not clear. It's more like FCFS instead of RR. Below is email to the OP with detailed explanation. Thanks.

-------------------------------------------------------- below is the email to OP-------------------------------------------------------- 

I think you are describing the PTX mode. There are two simulation modes. One is PTX (functional simulation + performance simulation). The other one is SASS mode (only performance simulation). SASS does not require functional simulation because it uses execution traces collected on a real GPU. SASS mode does not support concurrent kernel execution yet. We are working on that.

Have you read the Accel-Sim paper? If not please do so. It will really help you get started with the simulator. 

 

So in PTX mode kernel execution is in series by default. So only 1 kernel is active. If you have 2 or more kernels, the simulator will finish the first one, then launch the second kernel, and so on.

 

You can turn on concurrent kernel execution by adding ‘-gpgpu_concurrent_kernel_sm 1’ to the config file. By default, this feature is off. The flag is defined here. This flag should be what you are looking for. Assume if you have launched 2 kernels, the simulator will run kernel 1 as much as possible. If kernel 1 can use all SMs, then kernel 2 will not be executed until kernel1 has finished. This is exactly the same as concurrent execution turned off. It will make a difference if your kernel1 is small (cannot use all SMs), then the rest of the SMs will be executing kernel 2. Once kernel1 finish, all SMs will be running kernel2.

So in summary, it’s like a greedy FCFS (sorry my previous reply is not precise). You can also specify how many kernels can be executed together. This is very naïve. If you want to optimize multi-kernel scheduling you need to implement something yourself. 

 

Thanks.

 

From: jizhen wei <wish.all...@gmail.com>
Date: Thursday, August 18, 2022 at 22:15
To: Junrui Pan <panjun...@gmail.com>
Subject: 与“Hi, aobut kernels scheduling”相关的私人帖子

I'm sorry, I'm limited in my ability to understand what you mean.

So, do you mean that the scheduling strategy of kernels is different between performance simulation and pure functional simulation?

I hope to do some kernel optimization on the GPGPU architecture, so I hope you can give me more suggestions.

Thank you. I hope you have a good day

Reply all
Reply to author
Forward
0 new messages