MCPcopy Create free account
hub / github.com/pytorch/executorch / _extract_named_data

Function _extract_named_data

exir/_serialize/_program.py:384–419  ·  view source on GitHub ↗

Modifies the program in-place to add references to the named data segments. Args: program: The program to extract segments from. Modified in-place. segments: A list of buffers to append extracted segments to. Modified in-place. buffers: A list of unique buffers a

(
    program: Program,
    segments: List[AlignedData],
    buffers: Sequence[bytes],
    name_to_data_entry: Dict[str, DataEntry],
)

Source from the content-addressed store, hash-verified

382
383
384def _extract_named_data(
385 program: Program,
386 segments: List[AlignedData],
387 buffers: Sequence[bytes],
388 name_to_data_entry: Dict[str, DataEntry],
389) -> None:
390 """Modifies the program in-place to add references to the named data
391 segments.
392
393 Args:
394 program: The program to extract segments from. Modified in-place.
395 segments: A list of buffers to append extracted segments to. Modified in-place.
396 buffers: A list of unique buffers and the information required to
397 serialize them. Not modified.
398 name_to_data_entry: A map from the blob name to DataEntry.
399 Not modified.
400 """
401 if program.named_data is not None and len(program.named_data) > 0:
402 raise ValueError("Program already has named data.")
403
404 # Map from buffer_idx to segment_idx.
405 segment_index_map: Dict[int, int] = {}
406
407 named_data: List[NamedData] = []
408 for name, data_entry in name_to_data_entry.items():
409 segment_index = segment_index_map.get(data_entry.buffer_index, None)
410 if segment_index is None:
411 segment_index = len(segments)
412 segment_index_map[data_entry.buffer_index] = segment_index
413 segments.append(
414 AlignedData(
415 Cord(buffers[data_entry.buffer_index]), data_entry.alignment
416 )
417 )
418 named_data.append(NamedData(key=name, segment_index=segment_index))
419 program.named_data = named_data
420
421
422def serialize_pte_binary(

Callers 1

serialize_pte_binaryFunction · 0.70

Calls 6

CordClass · 0.90
NamedDataClass · 0.90
itemsMethod · 0.80
AlignedDataClass · 0.70
getMethod · 0.45
appendMethod · 0.45

Tested by

no test coverage detected