What about heterogeneous multi-device setups? Does this assume there's only one device type that executes kernels?