Is it possible to trace the GPU scheduler?

I am interested to know in what fashion the GPU scheduler employs and distributes the blocks to SMs. I think GigaThread global scheduler decides how many SMs (and which SMs) to be used for a particular application and then dispatches the blocks to them. So if at all it is possible to trace the scheduler and make it log this information, please let me know. I want to know how many SMs were assigned the jobs recently. Thank you.