xmos-ai-tools 1.1.2.dev401__py3-none-macosx_11_0_arm64.whl → 1.1.2.dev442__py3-none-macosx_11_0_arm64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (20) hide show
  1. xmos_ai_tools/io_server/__init__.py +5 -0
  2. xmos_ai_tools/runtime/include/lib_nn/api/add_int16_transform.h +2 -1
  3. xmos_ai_tools/runtime/include/lib_nn/api/dequantize_int16_transform.h +2 -1
  4. xmos_ai_tools/runtime/include/lib_nn/api/multiply_int16.h +4 -4
  5. xmos_ai_tools/runtime/include/lib_nn/api/multiply_int16_transform.h +6 -4
  6. xmos_ai_tools/runtime/include/lib_nn/api/nn_layers.h +38 -2
  7. xmos_ai_tools/runtime/include/lib_nn/api/nn_op_utils.h +21 -13
  8. xmos_ai_tools/runtime/include/lib_nn/api/nn_types.h +13 -0
  9. xmos_ai_tools/runtime/include/lib_nn/api/quantize_int16_transform.h +4 -3
  10. xmos_ai_tools/runtime/include/lib_tflite_micro/src/tflite-xcore-kernels/xcore_ops.h +8 -0
  11. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/runtime_shape.h +1 -3
  12. xmos_ai_tools/runtime/lib/libhost_xtflitemicro.a +0 -0
  13. xmos_ai_tools/runtime/lib/libxtflitemicro.a +0 -0
  14. xmos_ai_tools/xinterpreters/libs/macos/xtflm_python.1.0.1.dylib +0 -0
  15. xmos_ai_tools/xinterpreters/libs/macos/xtflm_python.dylib +0 -0
  16. {xmos_ai_tools-1.1.2.dev401.data → xmos_ai_tools-1.1.2.dev442.data}/data/bin/xcore-opt +0 -0
  17. {xmos_ai_tools-1.1.2.dev401.dist-info → xmos_ai_tools-1.1.2.dev442.dist-info}/METADATA +2 -2
  18. {xmos_ai_tools-1.1.2.dev401.dist-info → xmos_ai_tools-1.1.2.dev442.dist-info}/RECORD +20 -20
  19. {xmos_ai_tools-1.1.2.dev401.dist-info → xmos_ai_tools-1.1.2.dev442.dist-info}/WHEEL +0 -0
  20. {xmos_ai_tools-1.1.2.dev401.dist-info → xmos_ai_tools-1.1.2.dev442.dist-info}/top_level.txt +0 -0
@@ -70,6 +70,11 @@ class IOServer:
70
70
  assert type(data_read) is bytearray
71
71
  return self.bytes_to_arr(data_read, tensor_num)
72
72
 
73
+ def close(self):
74
+ if self._dev is not None:
75
+ self._dev.reset()
76
+ self._dev = None
77
+
73
78
  @handle_usb_error
74
79
  def _download_data(self, cmd, data_bytes, tensor_num=0, model_num=0):
75
80
  # TODO rm this extra CMD packet
@@ -1,6 +1,7 @@
1
1
  #ifndef _add_int16_transform_h_
2
2
  #define _add_int16_transform_h_
3
3
 
4
+ #include "nn_api.h"
4
5
  #include <stdint.h>
5
6
 
6
7
  /**
@@ -23,7 +24,7 @@
23
24
  *
24
25
  * @returns 1 on success, 0 on fail (fallback required)
25
26
  */
26
- int add_int16_tensor_blob(void *output,
27
+ C_API int add_int16_tensor_blob(void *output,
27
28
  float input1_scaler,
28
29
  float input2_scaler,
29
30
  float output_scaler);
@@ -1,6 +1,7 @@
1
1
  #ifndef _dequantize_int16_transform_h_
2
2
  #define _dequantize_int16_transform_h_
3
3
 
4
+ #include "nn_api.h"
4
5
  #include <stdint.h>
5
6
 
6
7
  /**
@@ -19,7 +20,7 @@
19
20
  *
20
21
  * @returns 1 on success, 0 on fail (fallback required)
21
22
  */
22
- int dequantize_int16_tensor_blob(void *output,
23
+ C_API int dequantize_int16_tensor_blob(void *output,
23
24
  float input_scaler);
24
25
 
25
26
  /**
@@ -31,12 +31,12 @@ void multiply_int16_tensor(int16_t *output, int16_t *input1, int16_t *input2,
31
31
  * @param input Non constant input tensor
32
32
  * Must be word-aligned
33
33
  *
34
- * @param blob Transformed constant input tensor
35
- * Must be word-aligned
36
- *
37
34
  * @param tensor_length Number of elements in the tensor (product of all dimensions)
38
35
  * There are no constraints on this number.
36
+ *
37
+ * @param blob Transformed constant input tensor
38
+ * Must be word-aligned
39
39
  */
40
- void requantise_int16_tensor(int16_t *output, int16_t *input1, void *blob, int tensor_length);
40
+ void requantize_int16_tensor(int16_t *output, int16_t *input1, int tensor_length, void *blob);
41
41
 
42
42
  #endif
@@ -1,6 +1,7 @@
1
1
  #ifndef _multiply_int16_transform_h_
2
2
  #define _multiply_int16_transform_h_
3
3
 
4
+ #include "nn_api.h"
4
5
  #include <stdint.h>
5
6
 
6
7
 
@@ -22,14 +23,14 @@
22
23
  *
23
24
  * @returns 1 on success, 0 on fail (fallback required)
24
25
  */
25
- int requantise_int16_tensor_blob(void *output,
26
+ C_API int requantize_int16_tensor_blob(void *output,
26
27
  float input_scaler,
27
28
  float output_scaler);
28
29
  /**
29
30
  * Macro that calculates the number of int16_t that should be allocated to
30
31
  * store the output of ``quantise_int16_tensor_blob()``
31
32
  */
32
- #define REQUANTISE_INT16_BYTES() (16 * sizeof(int16_t))
33
+ #define REQUANTIZE_INT16_TENSOR_BYTES() (16 * sizeof(int16_t))
33
34
 
34
35
 
35
36
  /**
@@ -52,7 +53,7 @@ int requantise_int16_tensor_blob(void *output,
52
53
  *
53
54
  * @returns 1 on success, 0 on fail (fallback required)
54
55
  */
55
- int multiply_int16_tensor_blob(void *output,
56
+ C_API int multiply_int16_tensor_blob(void *output,
56
57
  float input1_scaler,
57
58
  float input2_scaler,
58
59
  float output_scaler);
@@ -60,8 +61,9 @@ int multiply_int16_tensor_blob(void *output,
60
61
  /**
61
62
  * Macro that calculates the number of int16_t that should be allocated to
62
63
  * store the output of ``multiply_int16_tensor_blob()``
64
+ * TODO: this could be zero and stored in the pointer...
63
65
  */
64
- #define MULTIPLY_INT16_TENSOR_BYTES() (16 * sizeof(int16_t))
66
+ #define MULTIPLY_INT16_TENSOR_BYTES() (2 * sizeof(int16_t))
65
67
 
66
68
 
67
69
  #endif
@@ -277,7 +277,8 @@ void add_elementwise(int8_t Y[], const int8_t X1[], const int8_t X2[],
277
277
  *
278
278
  * `X` points to the input vector @tensor{x} with length @math{N}.
279
279
  *
280
- * `lut` points to the look-up table @math{T} with shape @tensor_shape{256}.
280
+ * `lut` points to the look-up table @math{T} with shape @tensor_shape{256} and
281
+ * dtype `int8`.
281
282
  *
282
283
  * `N` is the length @math{N} of the input vector @tensor{x}.
283
284
  *
@@ -291,9 +292,39 @@ void add_elementwise(int8_t Y[], const int8_t X1[], const int8_t X2[],
291
292
  void lookup8(uint8_t *Y, const uint8_t *X, const uint8_t *lut,
292
293
  const unsigned elm_start, const unsigned elm_count);
293
294
 
295
+ /**
296
+ * @brief Execute @oper{softmax_exp_sum} job.
297
+ *
298
+ * `Y` points to the output scalar.
299
+ *
300
+ * `X` points to the input vector @tensor{x} with length @math{N}.
301
+ *
302
+ * `lut` points to the look-up table @math{T} with shape @tensor_shape{256} and
303
+ * dtype `float32`.
304
+ *
305
+ * `N` is the length @math{N} of the input vector @tensor{x}.
306
+ *
307
+ * `elm_start` and `elm_count` together specify which output elements should be
308
+ * summed into the output scalar.
309
+ */
294
310
  void softmax_exp_sum(float *Y, const int8_t *X, const float *lut,
295
311
  const unsigned elm_start, const unsigned elm_count);
296
312
 
313
+ /**
314
+ * @brief Execute @oper{softmax_exp_div} job.
315
+ *
316
+ * `Y` points to the output vector @tensor{y} with length @math{N}.
317
+ *
318
+ * `X` points to the input vector @tensor{x} with length @math{N}.
319
+ *
320
+ * `lut` points to the look-up table @math{T} with shape @tensor_shape{256} and
321
+ * dtype `float32`.
322
+ *
323
+ * `inv_sum` is the reciprocal of the sum of the exponentials of the inputs.
324
+ *
325
+ * `elm_start` and `elm_count` together specify which output elements should be
326
+ * calculated by this invocation.
327
+ */
297
328
  void softmax_exp_div(int8_t *Y, const int8_t *X, const float *lut,
298
329
  const float inv_sum, const unsigned elm_start,
299
330
  const unsigned elm_count);
@@ -307,5 +338,10 @@ void softmax_ref(int8_t *Y, const int8_t *X, const float zero_point,
307
338
 
308
339
  void slice_memcpy(int8_t *dst, int8_t *src, int32_t *in_offsets,
309
340
  int32_t *out_offsets, int32_t *begin, int32_t *end,
310
- void (*memcpy_func)(void *, const void *, size_t));
341
+ void (*memcpy_func)(void *, void *, size_t));
342
+
343
+ void slice_memcpy_get_params(int *begin_dst, int *end_dst, int *in_offsets,
344
+ int *out_offsets, int *shape_dst, const int *begin,
345
+ const int *size, const int *shape,
346
+ const int dtype_size, const int rank);
311
347
  #endif // LAYERS_H_
@@ -8,6 +8,10 @@
8
8
 
9
9
  #include "xs3_vpu.h"
10
10
 
11
+ inline void memcpy_wrapper(void *dst, void *src, size_t byte_count) {
12
+ memcpy(dst, src, byte_count);
13
+ }
14
+
11
15
  #ifdef __XC__
12
16
  extern "C" {
13
17
  #endif
@@ -22,8 +26,8 @@ extern "C" {
22
26
  * \param DELTA_COLS (signed int) Number of columns
23
27
  * \param DELTA_CHANS (signed int) Number of channels
24
28
  */
25
- #define IMG_ADDRESS_VECT(IMG, DELTA_ROWS, DELTA_COLS, DELTA_CHANS) \
26
- (((DELTA_ROWS) * (IMG)->width * (IMG)->channels) + \
29
+ #define IMG_ADDRESS_VECT(IMG, DELTA_ROWS, DELTA_COLS, DELTA_CHANS) \
30
+ (((DELTA_ROWS) * (IMG)->width * (IMG)->channels) + \
27
31
  ((DELTA_COLS) * (IMG)->channels) + (DELTA_CHANS))
28
32
 
29
33
  /** Get the number of output channel groups given the number of output channels.
@@ -33,14 +37,14 @@ extern "C" {
33
37
  *
34
38
  * \param CHANNELS Number of channels
35
39
  */
36
- #define OUT_CHANNEL_GROUPS(CHANNELS) \
40
+ #define OUT_CHANNEL_GROUPS(CHANNELS) \
37
41
  (((CHANNELS) + (VPU_INT8_ACC_PERIOD - 1)) >> VPU_INT8_ACC_PERIOD_LOG2)
38
42
 
39
43
  #ifdef NN_USE_REF
40
44
  #define USING_C_REFERENCE (1)
41
45
  #else
42
46
  #define USING_C_REFERENCE (0)
43
- #endif // NN_USE_REF
47
+ #endif // NN_USE_REF
44
48
 
45
49
  #define MEMCPY_VECT_EXT_BYTES (128)
46
50
  #define MEMCPY_VECT_INT_BYTES (32)
@@ -56,7 +60,11 @@ extern "C" {
56
60
  * @param src [in] Source address
57
61
  * @param byte_count [in] Number of bytes to be copied
58
62
  */
59
- void vpu_memcpy(void* dst, const void* src, size_t byte_count);
63
+ void vpu_memcpy(void *dst, const void *src, size_t byte_count);
64
+
65
+ inline void vpu_memcpy_wrapper(void *dst, void *src, size_t byte_count) {
66
+ vpu_memcpy(dst, src, byte_count);
67
+ }
60
68
 
61
69
  /**
62
70
  * @brief Copy `size` bytes from `src` to `dst`.
@@ -70,7 +78,7 @@ void vpu_memcpy(void* dst, const void* src, size_t byte_count);
70
78
  * @param src [in] Source address
71
79
  * @param byte_count [in] Number of bytes to be copied
72
80
  */
73
- void vpu_memcpy_int(void* dst, const void* src, size_t byte_count);
81
+ void vpu_memcpy_int(void *dst, const void *src, size_t byte_count);
74
82
 
75
83
  /**
76
84
  * @brief Copy `size` bytes from `src` to `dst`.
@@ -84,7 +92,7 @@ void vpu_memcpy_int(void* dst, const void* src, size_t byte_count);
84
92
  * @param src [in] Source address
85
93
  * @param byte_count [in] Number of bytes to be copied
86
94
  */
87
- void vpu_memcpy_ext(void* dst, const void* src, size_t byte_count);
95
+ void vpu_memcpy_ext(void *dst, const void *src, size_t byte_count);
88
96
 
89
97
  /**
90
98
  * @brief Copy `vector_count` multiples of MEMCPY_VECT_EXT_BYTES bytes
@@ -100,7 +108,7 @@ void vpu_memcpy_ext(void* dst, const void* src, size_t byte_count);
100
108
  * @param vector_count [in] Number of MEMCPY_VECT_EXT_BYTES bytes copies to
101
109
  * be bytes to be performed
102
110
  */
103
- void vpu_memcpy_vector_ext(void* dst, const void* src, int vector_count);
111
+ void vpu_memcpy_vector_ext(void *dst, const void *src, int vector_count);
104
112
 
105
113
  /**
106
114
  * @brief Copy `vector_count` multiples of MEMCPY_VECT_INT_BYTES bytes
@@ -116,7 +124,7 @@ void vpu_memcpy_vector_ext(void* dst, const void* src, int vector_count);
116
124
  * @param vector_count [in] Number of MEMCPY_VECT_INT_BYTES bytes copies to
117
125
  * be bytes to be performed
118
126
  */
119
- void vpu_memcpy_vector_int(void* dst, const void* src, int vector_count);
127
+ void vpu_memcpy_vector_int(void *dst, const void *src, int vector_count);
120
128
 
121
129
  /**
122
130
  * @brief set `word_count` words from `value` to `dst`.
@@ -127,7 +135,7 @@ void vpu_memcpy_vector_int(void* dst, const void* src, int vector_count);
127
135
  * @param value [in] Source value.
128
136
  * @param size [in] Number of 32 bit words to be copied
129
137
  */
130
- void vpu_memset_32(void* dst, const int32_t value, const int word_count);
138
+ void vpu_memset_32(void *dst, const int32_t value, const int word_count);
131
139
 
132
140
  #define VPU_MEMSET_VECTOR_WORDS XS3_VPU_VREG_WIDTH_WORDS
133
141
 
@@ -141,10 +149,10 @@ void vpu_memset_32(void* dst, const int32_t value, const int word_count);
141
149
  * @param vector_count [in] Number of VPU_MEMSET_VECTOR_WORDS words vectors
142
150
  * to be copied.
143
151
  */
144
- void vpu_memset_vector(void* dst, const int32_t value, const int vector_count);
152
+ void vpu_memset_vector(void *dst, const int32_t value, const int vector_count);
145
153
 
146
154
  #ifdef __XC__
147
- } // extern "C"
155
+ } // extern "C"
148
156
  #endif
149
157
 
150
- #endif // NN_OP_UTILS_H_
158
+ #endif // NN_OP_UTILS_H_
@@ -67,4 +67,17 @@ typedef int32_t mem_stride_t;
67
67
  */
68
68
  typedef uint32_t channel_count_t;
69
69
 
70
+ /**
71
+ *
72
+ * Function pointer to unary op kernel functions for int16
73
+ */
74
+ typedef void (*UnaryI16FnType)(void *output, void *input, int tensor_length, void *blob);
75
+
76
+
77
+ /**
78
+ *
79
+ * Function pointer to binary op kernel functions for int16
80
+ */
81
+ typedef void (*BinaryI16FnType)(void *output, void *input1, void *input2, int tensor_length, void *blob);
82
+
70
83
  #endif // NN_TYPES_H_
@@ -1,6 +1,7 @@
1
1
  #ifndef _quantize_int16_transform_h_
2
2
  #define _quantize_int16_transform_h_
3
3
 
4
+ #include "nn_api.h"
4
5
  #include <stdint.h>
5
6
 
6
7
  /**
@@ -15,12 +16,12 @@
15
16
  * ``QUANTIZE_INT16_TENSOR_BYTES()`` bytes.
16
17
  * Must be word-aligned.
17
18
  *
18
- * @param input_scaler Quantisation scaler for the input
19
+ * @param output_scaler Quantisation scaler for the output
19
20
  *
20
21
  * @returns 1 on success, 0 on fail (fallback required)
21
22
  */
22
- int quantize_int16_tensor_blob(void *output,
23
- float input_scaler);
23
+ C_API int quantize_int16_tensor_blob(void *output,
24
+ float output_scaler);
24
25
 
25
26
  /**
26
27
  * Macro that calculates the number of int16_t that should be allocated to
@@ -15,6 +15,9 @@ constexpr const char *XC_beta_transposeconvf32_OpCode =
15
15
  "XC_beta_transposeconvf32";
16
16
  constexpr const char *XC_beta_fcf32_OpCode = "XC_beta_fcf32";
17
17
 
18
+ constexpr const char *XC_binaryi16_OpCode = "XC_binaryi16";
19
+ constexpr const char *XC_unaryi16_OpCode = "XC_unaryi16";
20
+
18
21
  constexpr const char *XC_conv2d_v2_OpCode = "XC_conv2d_v2";
19
22
  constexpr const char *XC_maxpool2d_OpCode = "XC_maxpool2d";
20
23
  constexpr const char *XC_softmax_OpCode = "XC_softmax";
@@ -23,6 +26,7 @@ constexpr const char *XC_add_OpCode = "XC_add";
23
26
  constexpr const char *XC_slice_OpCode = "XC_slice";
24
27
  constexpr const char *XC_lookup_OpCode = "XC_lookup";
25
28
  constexpr const char *XC_pad_OpCode = "XC_pad";
29
+ constexpr const char *XC_pad_v2_OpCode = "XC_pad_v2";
26
30
  constexpr const char *XC_pad_3_to_4_OpCode = "XC_pad_3_to_4";
27
31
  constexpr const char *XC_mul_OpCode = "XC_mul";
28
32
  // Binarized ops
@@ -34,6 +38,9 @@ TFLMRegistration *Register_XC_beta_convf32();
34
38
  TFLMRegistration *Register_XC_beta_transposeconvf32();
35
39
  TFLMRegistration *Register_XC_beta_fcf32();
36
40
 
41
+ TFLMRegistration *Register_XC_binaryi16();
42
+ TFLMRegistration *Register_XC_unaryi16();
43
+
37
44
  TFLMRegistration *Register_XC_conv2d_v2();
38
45
  TFLMRegistration *Register_XC_maxpool2d();
39
46
  TFLMRegistration *Register_XC_softmax();
@@ -42,6 +49,7 @@ TFLMRegistration *Register_XC_add();
42
49
  TFLMRegistration *Register_XC_slice();
43
50
  TFLMRegistration *Register_XC_lookup();
44
51
  TFLMRegistration *Register_XC_pad();
52
+ TFLMRegistration *Register_XC_pad_v2();
45
53
  TFLMRegistration *Register_XC_pad_3_to_4();
46
54
  TFLMRegistration *Register_XC_mul();
47
55
  // Binarized ops
@@ -120,9 +120,7 @@ class RuntimeShape {
120
120
  }
121
121
 
122
122
  int32_t size_;
123
- union {
124
- int32_t dims_[kMaxSmallSize];
125
- };
123
+ int32_t dims_[kMaxSmallSize];
126
124
  };
127
125
 
128
126
  // Since tensors with '0' in their shape are valid in TF, these offset functions
Binary file
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: xmos-ai-tools
3
- Version: 1.1.2.dev401
3
+ Version: 1.1.2.dev442
4
4
  Summary: XMOS AI Tools
5
5
  Home-page: https://github.com/xmos/ai_tools
6
6
  Author: XMOS
@@ -31,5 +31,5 @@ Requires-Dist: tflite >=2.4.0
31
31
  Documentation
32
32
  -------------
33
33
 
34
- Click [here](https://github.com/xmos/ai_tools/blob/67aace99b10535a6dd5fa2cabb7c9885f5c5d1e7/README.md) for documentation on using xmos-ai-tools to deploy AI models on xcore.
34
+ Click [here](https://github.com/xmos/ai_tools/blob/59293b2e7157d2cce536fe335195b79865748e77/README.md) for documentation on using xmos-ai-tools to deploy AI models on xcore.
35
35
 
@@ -1,5 +1,5 @@
1
1
  xmos_ai_tools/__init__.py,sha256=AEb1P1AVQeYBcBsImZNpg46juG7y-0EQU-eRVczLUgc,172
2
- xmos_ai_tools/io_server/__init__.py,sha256=3yQGxWPtFMCFzCEKkOdw8J5wlL-5CvHdSPSVaQtaJS8,4348
2
+ xmos_ai_tools/io_server/__init__.py,sha256=hAOCKOr8QdIbPd3JnvhvmMYRNI4tg--RxrTBFnwoZXY,4463
3
3
  xmos_ai_tools/runtime/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  xmos_ai_tools/runtime/buildfiles/aitoolslib.cmake,sha256=7xlnDRNVsEIxu929Nt887drbV104t_Nsye1Rv_FpasA,478
5
5
  xmos_ai_tools/runtime/buildfiles/aitoolslib.make,sha256=D4GFs74BsWTuQT6R_yxXwR4LLH0pzyFiAXnGpe5hntI,253
@@ -38,23 +38,23 @@ xmos_ai_tools/runtime/include/flatbuffers/pch/flatc_pch.h,sha256=NxlfeyZtf-PCL0y
38
38
  xmos_ai_tools/runtime/include/flatbuffers/pch/pch.h,sha256=XV11Mx5VHBJUdvDufl3rdZUng7UELFIBFsQzqNnY-tw,995
39
39
  xmos_ai_tools/runtime/include/lib_nn/api/TransposeConv.h,sha256=dGSevVX6WC_MBMsghBxZoJ0Zf9KkUMkQ9WGZr5FpfJI,663
40
40
  xmos_ai_tools/runtime/include/lib_nn/api/add_int16.h,sha256=OlmGl-hRSmxAnmg05dT2xGFHm2tRjN0uquegROqZTMs,875
41
- xmos_ai_tools/runtime/include/lib_nn/api/add_int16_transform.h,sha256=fy8TRz5VcDDNw0lXVBLRXrNoXcFq3vqTKxKZKt5pi_k,1181
41
+ xmos_ai_tools/runtime/include/lib_nn/api/add_int16_transform.h,sha256=bZUtsuxMgZj0IxVVTkr7FQ_Lw332p47Cfxo6NreaDtI,1207
42
42
  xmos_ai_tools/runtime/include/lib_nn/api/dequantize_int16.h,sha256=qojIhBFX2zgj5cYxNhS3riH2NniJPlj9D2wSRf8djQY,753
43
- xmos_ai_tools/runtime/include/lib_nn/api/dequantize_int16_transform.h,sha256=VYtyiSN2AdM8DCaHAFAEwzow1rDYb0dwDJW5rQTvq-I,1014
43
+ xmos_ai_tools/runtime/include/lib_nn/api/dequantize_int16_transform.h,sha256=XmGgVqHweYIXeisI9Xh2urHL4nZWZoyimYFhT-a7cQY,1040
44
44
  xmos_ai_tools/runtime/include/lib_nn/api/expand_8_to_16.h,sha256=7-HFoUFgiOjgyGluHoBrIPbLPChGmkkzcMKW3teXMh0,145
45
- xmos_ai_tools/runtime/include/lib_nn/api/multiply_int16.h,sha256=TZyIcvkOAUA8lidEo0aUuyikcbFZdhhBL9eGuBBI0-0,1551
46
- xmos_ai_tools/runtime/include/lib_nn/api/multiply_int16_transform.h,sha256=g4brNDJGe7bvWSh5C4KA2Nb1tJHShTOAJwA-xXbxi_8,2265
45
+ xmos_ai_tools/runtime/include/lib_nn/api/multiply_int16.h,sha256=gBgXPvMYhZ9ZIqKthWKSeWmLPwhFCy6eKKmj0f1M2JQ,1551
46
+ xmos_ai_tools/runtime/include/lib_nn/api/multiply_int16_transform.h,sha256=RWvjLZcY2vyhYTCGVqlpOwwN2el3BWybYlYfOlOeguM,2360
47
47
  xmos_ai_tools/runtime/include/lib_nn/api/nn_api.h,sha256=WckI8IecZUiJOTCxkQUjXMIlkOUHuhk7OGYdElPhU4c,172
48
48
  xmos_ai_tools/runtime/include/lib_nn/api/nn_bin_types.h,sha256=DTFX2ecfzwl-_tHlqTR2xypgK7oxmvVWc58eJqJK2rE,325
49
49
  xmos_ai_tools/runtime/include/lib_nn/api/nn_config.h,sha256=KFoA5zyOTTHi6x-qDuIWkF8wAz4Gc4BdOBgUzOArOD0,11558
50
50
  xmos_ai_tools/runtime/include/lib_nn/api/nn_conv2d_structs.h,sha256=Kfyq3bD1aLcSnWTB_cijU_D5ThGol5utJ1k-WsjqeMY,2268
51
51
  xmos_ai_tools/runtime/include/lib_nn/api/nn_image.h,sha256=gz7NyxmZACZiDED0wT7px2qjEEMcUwfa5TjeOUmYzL4,514
52
- xmos_ai_tools/runtime/include/lib_nn/api/nn_layers.h,sha256=ZzOHDT2pY1nM_pvG6_fGT5hDN2Qax1EXzDszXQuQB7s,10893
52
+ xmos_ai_tools/runtime/include/lib_nn/api/nn_layers.h,sha256=JZx4pkwoJrvU3YtNPvoDZLnOHf01ci7-QfNqViQp0W4,12140
53
53
  xmos_ai_tools/runtime/include/lib_nn/api/nn_op_helper.h,sha256=VMnBVEcgH0wtiiV91JjtFRG4xkCI0m7WrikEmU6ulss,3716
54
- xmos_ai_tools/runtime/include/lib_nn/api/nn_op_utils.h,sha256=zoyHr07-ND_DCcS0ovehshCnXTrKBTlYOPX5Ul69JRs,4678
54
+ xmos_ai_tools/runtime/include/lib_nn/api/nn_op_utils.h,sha256=gPoMl9w9ZffiCObm7omHJbYZBbVwLGLzOOEsKTxL-vw,4959
55
55
  xmos_ai_tools/runtime/include/lib_nn/api/nn_operator.h,sha256=Nj4jiXVHlnFjVBtV7mCGulTzSyNwCIpitz8Ao9kSIsU,337
56
56
  xmos_ai_tools/runtime/include/lib_nn/api/nn_pooling.h,sha256=DUJNIhtabaMJvP4m46BICDNY2nCSXWKdfE0AUu7VhaY,24456
57
- xmos_ai_tools/runtime/include/lib_nn/api/nn_types.h,sha256=qDuxF8ldzxEtwd4Ysu11sVU1-mx59Jzn-7vTtc_4dqw,1646
57
+ xmos_ai_tools/runtime/include/lib_nn/api/nn_types.h,sha256=Fy88rGmjWcZuJTjSY5Z_VesbW54cqNGbZuxeiJnvd1Q,1986
58
58
  xmos_ai_tools/runtime/include/lib_nn/api/nn_window_params.h,sha256=NeCS7hhE7tdmc3TwTvmBR-E5EXz969gOzisoITwdV9o,1660
59
59
  xmos_ai_tools/runtime/include/lib_nn/api/output_transform_fn_int16.h,sha256=5Na926JTr8Sg0KfeSt3fapzJQdEX4Gmf_oXM_oGsFvM,2122
60
60
  xmos_ai_tools/runtime/include/lib_nn/api/output_transform_fn_int16_kernel_transform.h,sha256=VdNi6qB11_cYmoIJ6I_TIJw1l9lH-g1dMAqWyRyaouQ,1555
@@ -62,7 +62,7 @@ xmos_ai_tools/runtime/include/lib_nn/api/output_transform_fn_int16_mappings.h,sh
62
62
  xmos_ai_tools/runtime/include/lib_nn/api/quadratic_approximation.h,sha256=VnyV5igZCQml-SjUKg8fRydlZFzqjaIK0OOQU35gi7U,2713
63
63
  xmos_ai_tools/runtime/include/lib_nn/api/quadratic_interpolation.h,sha256=qNguTb1oiAJ_n1_wnSFXD4BEE8PTJqePph6FVnkrwac,816
64
64
  xmos_ai_tools/runtime/include/lib_nn/api/quantize_int16.h,sha256=THKX9qg6ob1Cj4LiRmqlogaEAozc2qEIiENBmRS8rgs,736
65
- xmos_ai_tools/runtime/include/lib_nn/api/quantize_int16_transform.h,sha256=IXXLFAMvgZZpREYa39h2TnmhTH5IFghEkGbYL8bssPs,1000
65
+ xmos_ai_tools/runtime/include/lib_nn/api/quantize_int16_transform.h,sha256=Rg2XOvVL1P2UneJ33X9b-ATwaCIiNAyp_ipdAu1SXyk,1029
66
66
  xmos_ai_tools/runtime/include/lib_nn/api/version.h,sha256=P0otpsAVvhiPNpXQu6uJUrjygoOTaHEJlIegIMyj_W4,303
67
67
  xmos_ai_tools/runtime/include/lib_nn/api/vpu_sim.h,sha256=3S1_2eSaEj2q8nhFuRiCefQhwTeYpfothuFu0fC54_s,3811
68
68
  xmos_ai_tools/runtime/include/lib_nn/api/xs3_vpu.h,sha256=xuEpNayaSWeEIoL1--EfQAXkr4TidwDASFYgbshJ-Mw,6227
@@ -82,7 +82,7 @@ xmos_ai_tools/runtime/include/lib_tflite_micro/src/tflite-xcore-kernels/xcore_co
82
82
  xmos_ai_tools/runtime/include/lib_tflite_micro/src/tflite-xcore-kernels/xcore_custom_options.h,sha256=8iD9kjYqpaGpAUfGzfYk7OaPZo1ewpL5bBnZECE6jEg,618
83
83
  xmos_ai_tools/runtime/include/lib_tflite_micro/src/tflite-xcore-kernels/xcore_error_reporter.h,sha256=fnSTiuJEL5cstbgtiM9rKwpCCNPHFEZr5b_Qu4PY1Yo,794
84
84
  xmos_ai_tools/runtime/include/lib_tflite_micro/src/tflite-xcore-kernels/xcore_interpreter.h,sha256=5-_cbV1uXQDTW51l3F3p06fZB4qx19Z848h9qtoAjE4,1753
85
- xmos_ai_tools/runtime/include/lib_tflite_micro/src/tflite-xcore-kernels/xcore_ops.h,sha256=NN-J6xPLBhbjPcnCLGrdaeGEYKbrJx5BJKNTLL_RTQw,2028
85
+ xmos_ai_tools/runtime/include/lib_tflite_micro/src/tflite-xcore-kernels/xcore_ops.h,sha256=7dJTjMUId_e9_L1n-fs3PMKBwGFv8tTc_mlAATMt3nU,2327
86
86
  xmos_ai_tools/runtime/include/lib_tflite_micro/src/tflite-xcore-kernels/xcore_profiler.h,sha256=5wo0BpSfxebxo-NpAoJYsheULF9u_Nz3xbhjUs2K2Hg,1215
87
87
  xmos_ai_tools/runtime/include/lib_tflite_micro/src/tflite-xcore-kernels/xcore_utils.h,sha256=kynLZ8kJMx4sGQNOkIqoF7zjey1mKVeEbgdGS-UAX_o,4717
88
88
  xmos_ai_tools/runtime/include/lib_xud/lib_xud/api/xud.h,sha256=CpBh7idogG_eZXEe29i306iXbz3Jcnvd5CgptIFG8Lo,20680
@@ -184,7 +184,7 @@ xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/min.h,sha256=BYQ8
184
184
  xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/portable_tensor.h,sha256=lAQ6b7gSamkhmx27VGdrV0VXYPvON_SvZXF2ex-g4mg,4927
185
185
  xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/portable_tensor_utils.h,sha256=pwbcCaYiBFPEWfx9m9hWnfgdCboIpv4VaqOf2seiF94,30066
186
186
  xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/quantization_util.h,sha256=CtvsfhzkPRPZ-dOPQ3mq7Mb4-rCpWzAFoKWmF6MUgSE,13487
187
- xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/runtime_shape.h,sha256=KdYkaogFd6h35YCi0yXhuxCqZ0CVrjnMjnBhQh7GBRY,6062
187
+ xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/runtime_shape.h,sha256=oh4Pun4chIIXr7l3U8B5bovA211Wiu52sDlMFRcB-lU,6045
188
188
  xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/strided_slice_logic.h,sha256=PSu9NOgYzaQf0hERywzdAbtJzJvKPeE19bW1tgub_6Q,9002
189
189
  xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/tensor_ctypes.h,sha256=-pEhMOyxDijqeTFaJsSr3wUcOu_9T-Xc43KGEtLBcnk,1526
190
190
  xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/types.h,sha256=TvgihqeWXphaPQpEeZ3hJMF7Colt1yY2gmc0lP-cufc,36836
@@ -377,17 +377,17 @@ xmos_ai_tools/runtime/include/tensorflow/lite/micro/tools/benchmarking/metrics.h
377
377
  xmos_ai_tools/runtime/include/tensorflow/lite/micro/tools/benchmarking/op_resolver.h,sha256=RGL4qxRe7mT-DjxD0NiFhRvVpuDn5xIuwXdrj6I9avs,6053
378
378
  xmos_ai_tools/runtime/include/tensorflow/lite/schema/schema_generated.h,sha256=V6KZsZ1QF0xtjxBnXJbk32hvtWYnaBkuURjk_Hs9ivs,1073395
379
379
  xmos_ai_tools/runtime/include/tensorflow/lite/schema/schema_utils.h,sha256=Iyv5Rn__Q15pfUm-9DvFU_GFF_8rplBNwor-V5TUi_0,1321
380
- xmos_ai_tools/runtime/lib/libhost_xtflitemicro.a,sha256=u1hq-SaJ7BO0gcWOvBbZcMDBJTNfTt8ShroGWtYDkcU,965296
381
- xmos_ai_tools/runtime/lib/libxtflitemicro.a,sha256=wseyHKFQsKn0IAOeOk2nrHSXlpw_ndmvvaod7gG_AAc,67689986
380
+ xmos_ai_tools/runtime/lib/libhost_xtflitemicro.a,sha256=I6dmQ2xjyW7FdND8DkplBOkj8fZyZHl6bYsgYiLAwhI,991776
381
+ xmos_ai_tools/runtime/lib/libxtflitemicro.a,sha256=ThLPX9qOfHTGo_TXLQJLjPfY0pZCBF3gT4lXIxXFEXY,69122676
382
382
  xmos_ai_tools/xformer/__init__.py,sha256=jA0xba6ZitK9HwWvDJewM8AMU4IZnx_iB1GSBrRUGvU,1627
383
383
  xmos_ai_tools/xformer/flash.py,sha256=MG4coi_Lvvg-oQmw1pomJD8eeOH4gAMjixjBFvO2BCk,6376
384
384
  xmos_ai_tools/xinterpreters/__init__.py,sha256=PFRB9VxOLKaA--j2ZvWGcmesv2C6uNYqJ_kBam68aUI,50
385
385
  xmos_ai_tools/xinterpreters/exceptions.py,sha256=HOjADxHYMPI9mN0YIbWxtw9hSeL2B6XWWwqtGtyJdVs,577
386
386
  xmos_ai_tools/xinterpreters/host_interpreter.py,sha256=No-g29_twbIaJ4S4fzU5TGpKd4WPVEE0737HtL877sw,25692
387
- xmos_ai_tools/xinterpreters/libs/macos/xtflm_python.1.0.1.dylib,sha256=cf3r21Z9_iGfRZd1Of665DO74C_RxHalifMPvCBtgn8,946581
388
- xmos_ai_tools/xinterpreters/libs/macos/xtflm_python.dylib,sha256=cf3r21Z9_iGfRZd1Of665DO74C_RxHalifMPvCBtgn8,946581
389
- xmos_ai_tools-1.1.2.dev401.data/data/bin/xcore-opt,sha256=JjrWDzAiDUo_c2el3I5babJT9K-8FLW6VrzoiRNhVM8,144161686
390
- xmos_ai_tools-1.1.2.dev401.dist-info/METADATA,sha256=9ypFx8PV_VagXvtfzvMcN0y3u4PlCtZ_Tu88Z-MJemg,1363
391
- xmos_ai_tools-1.1.2.dev401.dist-info/WHEEL,sha256=IPDqJGqJLX0u0WXkppbx2qlPtK5mpK7tD_Q6j3xfzzw,107
392
- xmos_ai_tools-1.1.2.dev401.dist-info/top_level.txt,sha256=YWegea73ll3tMlRWRdHJemUy2VOuEYDdOIaffxu_eF0,14
393
- xmos_ai_tools-1.1.2.dev401.dist-info/RECORD,,
387
+ xmos_ai_tools/xinterpreters/libs/macos/xtflm_python.1.0.1.dylib,sha256=aDoPuWVTdSX-b6SO5Fsr-ZvRyNjlsVSKDOFHMk4oRvY,966005
388
+ xmos_ai_tools/xinterpreters/libs/macos/xtflm_python.dylib,sha256=aDoPuWVTdSX-b6SO5Fsr-ZvRyNjlsVSKDOFHMk4oRvY,966005
389
+ xmos_ai_tools-1.1.2.dev442.data/data/bin/xcore-opt,sha256=4gG3Mj3iTg7Foe23e8qPTFQI8IpwmQps4m-VvK1yCaA,144629510
390
+ xmos_ai_tools-1.1.2.dev442.dist-info/METADATA,sha256=vYYcL0PoAD77yn-tPK8ecG1AeMz5IOuPHe1YBrVuzWY,1363
391
+ xmos_ai_tools-1.1.2.dev442.dist-info/WHEEL,sha256=IPDqJGqJLX0u0WXkppbx2qlPtK5mpK7tD_Q6j3xfzzw,107
392
+ xmos_ai_tools-1.1.2.dev442.dist-info/top_level.txt,sha256=YWegea73ll3tMlRWRdHJemUy2VOuEYDdOIaffxu_eF0,14
393
+ xmos_ai_tools-1.1.2.dev442.dist-info/RECORD,,