File: schema.fbs

package info (click to toggle)
pytorch-cuda 2.6.0%2Bdfsg-7
  • links: PTS, VCS
  • area: contrib
  • in suites: forky, sid, trixie
  • size: 161,620 kB
  • sloc: python: 1,278,832; cpp: 900,322; ansic: 82,710; asm: 7,754; java: 3,363; sh: 2,811; javascript: 2,443; makefile: 597; ruby: 195; xml: 84; objc: 68
file content (97 lines) | stat: -rw-r--r-- 2,779 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
// Copyright (c) Meta Platforms, Inc. and affiliates.

namespace fb_xnnpack;

// datatype for xnn-values
enum XNNDatatype : short {
  /// Invalid data type. Valid Values never have this datatype.
  xnn_datatype_invalid = 0,
  /// IEEE754 single-precision floating-point.
  xnn_datatype_fp32 = 1,
  /// IEEE754 half-precision floating-point.
  xnn_datatype_fp16 = 2,
  /// Quantized 8-bit signed integer with shared per-Value quantization parameters.
  xnn_datatype_qint8 = 3,
  /// Quantized 32-bit signed integer with shared per-Value quantization parameters.
  xnn_datatype_qint32 = 4,
}

// taken from executorch
// Data buffer abstraction.
table Buffer {
  storage:[ubyte] (force_align: 16);
}

table XNNTensorValue {
  // type of the tensor elements.
  datatype:XNNDatatype;
  // number of dimensions in the shape.
  num_dims:uint;
  // pointer to an array of @a num_dims shape dimensions. If num_dims is 0, this pointer can be NULL.
  // XNNPACK does not keep any pointers to this array after the function returns.
  dims:[uint];
  // Index to the program's constant buffer table, value 0 is reserved to indicate non constant
  constant_buffer_idx:uint;
  // external ID for the Value. The ID must be within the range of reserved Value IDs specified on
  // the Subgraph creation. If the external ID is XNN_INVALID_VALUE_ID, an internal ID will be
  // created for the Value.
  external_id:uint;
  // binary features of the Value. Supported values are any combination of XNN_VALUE_FLAG_EXTERNAL_INPUT
  // and XNN_VALUE_FLAG_EXTERNAL_OUTPUT.
  flags:uint;
  // pointer to the variable that will be initialized with the Value ID upon successful return. If a
  // valid @a external_id was provided, the variable will be initialized with the @a external_id value.
  id_out:uint;
}

union XNodeUnion {
  XNNAdd,
}

union XValueUnion {
  XNNTensorValue,
}

table XNode {
  xnode:XNodeUnion;
  // An int which can be linked back to the node in the origin graph
  debug_handle:uint;
}

table XValue {
  xvalue:XValueUnion;
}

table XNNAdd {
  input1_id:uint;
  input2_id:uint;
  output_id:uint;
  flags:uint;
}

table XNNGraph {
  // Schema version.
  version:string;
  xnodes:[XNode];
  xvalues:[XValue];

  // Number of external inputs/outputs
  num_externs:uint;

  // Ids of external inputs
  input_ids:[uint];

  // Ids of external outputs
  output_ids:[uint];

  // Tables of constant data, used for constant Values (e.g.
  // data field of weight tensors). Each constant is assigned an index into the table
  // which are each individually aligned. 0 index is reserved to be pointed to by non-constant
  // Tensors
  constant_buffer:[Buffer];

  // the list index is memory buffer id, the value is the memory buffer size.
  mem_buffer_sizes: [uint];
}

root_type XNNGraph;