Thanks @mbs-octoml!
`Target` is a compile-time concept, while `device` is a runtime concept. The separation design is to make sure that a target can describe a device that doesn't exist on the host, mainly for cross compilation. And yes, in principle, every `TargetKind` corresponds to a `DLDeviceType`, for example - llvm (compile time) => kDLCPU (runtime) - cuda (compile time) => kDLCUDA (runtime) - nvptx (compile time) => kDLCUDA (runtime) Note that `device_id` is not present anywhere in the `Target` system, because we don't require the device to be present on the host in compile time. --- [Visit Topic](https://discuss.tvm.apache.org/t/rfc-tvm-target-specification/6844/59) to respond. You are receiving this because you enabled mailing list mode. To unsubscribe from these emails, [click here](https://discuss.tvm.apache.org/email/unsubscribe/c3c0e41fc7d2acc38640a09969b5544c3ce9821fe657e197d8da496be649ce37).