Is there any way to control the GPU block scheduler?

Hi, I am recently doing research on work balancing on GPUs. One goal is to assign different tasks (kernels/blocks/warps/others) to different SMs and let the SM’s different units work concurrently (FP32, INT32, LSU…).

GPU has a inner scheduler that schedules blocks to different SMs and schedule different warps to different SMSPs. Is there any way to pin a block to a specific SM? Or any other methods to bypass the GPU block scheduler?

You don’t have any direct control over the behavior of the GPU block scheduler. You can impact scheduling in a small way by taking control of block numbering. You do this typically using the smid indication, plus perhaps the use of atomcs for numbering. You can find various questions here on these forums on this topic with a bit of searching. Here is one example.

1 Like