Class TargetKindDef#

Class Documentation#

class TargetKindDef#

Temporary fluent builder for registering a target kind.

The registry retains the canonical kind after this builder is destroyed. Group related definitions inside TVM_FFI_STATIC_INIT_BLOCK():

TVM_FFI_STATIC_INIT_BLOCK() {
TargetKindDef("llvm")
      .set_default_device_type(kDLCPU)
      .set_default_keys({"cpu"})
      .def_option<ffi::String>("mcpu");
}

Public Functions

inline explicit TargetKindDef(const ffi::String &name)#

Register or retrieve the canonical kind with this name.

Parameters:

name – Target kind name.

inline TargetKindDef &set_default_device_type(int device_type)#

Set the default DLPack device type.

Parameters:

device_type – DLPack device type.

Returns:

This builder for chaining.

inline TargetKindDef &set_default_keys(std::vector<ffi::String> keys)#

Set default target keys.

Parameters:

keys – Default keys in priority order.

Returns:

This builder for chaining.

inline TargetKindDef &set_target_canonicalizer(FTargetCanonicalizer canonicalizer)#

Set the canonicalizer used when constructing targets of this kind.

Parameters:

canonicalizer – Function from a validated config map to its canonical form.

Returns:

This builder for chaining. Also updates the kind’s ConfigSchema.

template<typename ValueType, typename ...Traits>
inline TargetKindDef &def_option(const ffi::String &key, Traits&&... traits)#

Declare a typed target option in the kind’s ConfigSchema.

Template Parameters:
  • ValueType – Canonical option value type.

  • Traits – Optional metadata or validator trait types.

Parameters:
  • key – Option name.

  • traits – Optional traits such as a default value or validator.

Returns:

This builder for chaining. Duplicate option names raise ValueError.