Question about threads and SMs


I just have a quick question:

For a particular thread (or thread block), is there any way to identify which SM that thread (or block) ran on?


I don’t think this is recommended but:

unsigned int smid; asm volatile (“mov.u32 %0, %smid;” : “=r”(smid));

Furthermore, as I’m sure you’re aware, the programming model doesn’t really want you to program for a specifig SM.