MCPcopy Create free account
hub / github.com/pytorch/pytorch / parse_from_yaml

Function parse_from_yaml

torchgen/executorch/parse.py:25–71  ·  view source on GitHub ↗

Given a loaded yaml representing kernel assignment information, extract the mapping from `kernel keys` to `BackendMetadata` (the latter representing the kernel instance) Args: ei: Dict keys {kernels, type_alias, dim_order_alias} See ETKernelKey for description of argumen

(ei: Dict[str, object])

Source from the content-addressed store, hash-verified

23
24
25def parse_from_yaml(ei: Dict[str, object]) -> Dict[ETKernelKey, BackendMetadata]:
26 """Given a loaded yaml representing kernel assignment information, extract the
27 mapping from `kernel keys` to `BackendMetadata` (the latter representing the kernel instance)
28
29 Args:
30 ei: Dict keys {kernels, type_alias, dim_order_alias}
31 See ETKernelKey for description of arguments
32 """
33 e = ei.copy()
34 if (kernels := e.pop("kernels", None)) is None:
35 return {}
36
37 type_alias: Dict[str, List[str]] = e.pop("type_alias", {}) # type: ignore[assignment]
38 dim_order_alias: Dict[str, List[str]] = e.pop("dim_order_alias", {}) # type: ignore[assignment]
39 dim_order_alias.pop("__line__", None)
40
41 kernel_mapping: Dict[ETKernelKey, BackendMetadata] = {}
42
43 for entry in kernels: # type: ignore[attr-defined]
44 arg_meta = entry.get("arg_meta")
45 if arg_meta is not None:
46 arg_meta.pop("__line__")
47
48 kernel_name = entry.get("kernel_name")
49 namespace_helper = NamespaceHelper.from_namespaced_entity(
50 kernel_name, max_level=3
51 )
52 kernel_namespace = namespace_helper.get_cpp_namespace(default="at")
53 backend_metadata = BackendMetadata(
54 kernel=namespace_helper.entity_name,
55 structured=False,
56 cpp_namespace=(kernel_namespace + "::native"),
57 )
58
59 kernel_keys = (
60 [ETKernelKey((), default=True)]
61 if arg_meta is None
62 else ETKernelKey.gen_from_yaml(arg_meta, type_alias, dim_order_alias) # type: ignore[arg-type]
63 )
64
65 for kernel_key in kernel_keys:
66 assert kernel_key not in kernel_mapping, (
67 "Duplicate kernel key: " + str(kernel_key) + " " + str(e)
68 )
69 kernel_mapping[kernel_key] = backend_metadata
70
71 return kernel_mapping
72
73
74def parse_et_yaml_struct(es: object) -> ETKernelIndex:

Callers 1

parse_et_yaml_structFunction · 0.85

Calls 8

BackendMetadataClass · 0.90
ETKernelKeyClass · 0.90
get_cpp_namespaceMethod · 0.80
gen_from_yamlMethod · 0.80
copyMethod · 0.45
popMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…