DeviceMappingAttrInterface is implemented as unifiying mechanism for thread mapping. A code generator could use any attribute that implements this interface to lower scf.foreach_thread to device specific code. It is allowed to choose its own mapping and interpretation.
Currently, GPU transform dialect supports only GPUThreadMapping and GPUBlockMapping; however, other mappings should to be supported as well. This change addresses this issue. It decouples gpu transform dialect from the GPUThreadMapping and GPUBlockMapping. Now, they can work any other mapping.