pytorch

Форк
0
97 строк · 2.7 Кб
1
// Copyright (c) Meta Platforms, Inc. and affiliates.
2

3
namespace fb_xnnpack;
4

5
// datatype for xnn-values
6
enum XNNDatatype : short {
7
  /// Invalid data type. Valid Values never have this datatype.
8
  xnn_datatype_invalid = 0,
9
  /// IEEE754 single-precision floating-point.
10
  xnn_datatype_fp32 = 1,
11
  /// IEEE754 half-precision floating-point.
12
  xnn_datatype_fp16 = 2,
13
  /// Quantized 8-bit signed integer with shared per-Value quantization parameters.
14
  xnn_datatype_qint8 = 3,
15
  /// Quantized 32-bit signed integer with shared per-Value quantization parameters.
16
  xnn_datatype_qint32 = 4,
17
}
18

19
// taken from executorch
20
// Data buffer abstraction.
21
table Buffer {
22
  storage:[ubyte] (force_align: 16);
23
}
24

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

47
union XNodeUnion {
48
  XNNAdd,
49
}
50

51
union XValueUnion {
52
  XNNTensorValue,
53
}
54

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

61
table XValue {
62
  xvalue:XValueUnion;
63
}
64

65
table XNNAdd {
66
  input1_id:uint;
67
  input2_id:uint;
68
  output_id:uint;
69
  flags:uint;
70
}
71

72
table XNNGraph {
73
  // Schema version.
74
  version:string;
75
  xnodes:[XNode];
76
  xvalues:[XValue];
77

78
  // Number of external inputs/outputs
79
  num_externs:uint;
80

81
  // Ids of external inputs
82
  input_ids:[uint];
83

84
  // Ids of external outputs
85
  output_ids:[uint];
86

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

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

97
root_type XNNGraph;
98

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.