xmos-ai-tools 1.3.2.dev180__py3-none-macosx_10_15_universal2.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 (395) hide show
  1. xmos_ai_tools/__init__.py +7 -0
  2. xmos_ai_tools/io_server/__init__.py +151 -0
  3. xmos_ai_tools/runtime/__init__.py +0 -0
  4. xmos_ai_tools/runtime/buildfiles/aitoolslib.cmake +13 -0
  5. xmos_ai_tools/runtime/buildfiles/aitoolslib.make +8 -0
  6. xmos_ai_tools/runtime/include/flash_server.h +73 -0
  7. xmos_ai_tools/runtime/include/flatbuffers/allocator.h +68 -0
  8. xmos_ai_tools/runtime/include/flatbuffers/array.h +243 -0
  9. xmos_ai_tools/runtime/include/flatbuffers/base.h +474 -0
  10. xmos_ai_tools/runtime/include/flatbuffers/bfbs_generator.h +43 -0
  11. xmos_ai_tools/runtime/include/flatbuffers/buffer.h +142 -0
  12. xmos_ai_tools/runtime/include/flatbuffers/buffer_ref.h +53 -0
  13. xmos_ai_tools/runtime/include/flatbuffers/code_generators.h +235 -0
  14. xmos_ai_tools/runtime/include/flatbuffers/default_allocator.h +64 -0
  15. xmos_ai_tools/runtime/include/flatbuffers/detached_buffer.h +114 -0
  16. xmos_ai_tools/runtime/include/flatbuffers/flatbuffer_builder.h +1197 -0
  17. xmos_ai_tools/runtime/include/flatbuffers/flatbuffers.h +270 -0
  18. xmos_ai_tools/runtime/include/flatbuffers/flatc.h +111 -0
  19. xmos_ai_tools/runtime/include/flatbuffers/flexbuffers.h +1897 -0
  20. xmos_ai_tools/runtime/include/flatbuffers/grpc.h +300 -0
  21. xmos_ai_tools/runtime/include/flatbuffers/hash.h +127 -0
  22. xmos_ai_tools/runtime/include/flatbuffers/idl.h +1232 -0
  23. xmos_ai_tools/runtime/include/flatbuffers/minireflect.h +419 -0
  24. xmos_ai_tools/runtime/include/flatbuffers/pch/flatc_pch.h +39 -0
  25. xmos_ai_tools/runtime/include/flatbuffers/pch/pch.h +38 -0
  26. xmos_ai_tools/runtime/include/flatbuffers/reflection.h +502 -0
  27. xmos_ai_tools/runtime/include/flatbuffers/reflection_generated.h +1449 -0
  28. xmos_ai_tools/runtime/include/flatbuffers/registry.h +128 -0
  29. xmos_ai_tools/runtime/include/flatbuffers/stl_emulation.h +509 -0
  30. xmos_ai_tools/runtime/include/flatbuffers/string.h +64 -0
  31. xmos_ai_tools/runtime/include/flatbuffers/struct.h +53 -0
  32. xmos_ai_tools/runtime/include/flatbuffers/table.h +168 -0
  33. xmos_ai_tools/runtime/include/flatbuffers/util.h +690 -0
  34. xmos_ai_tools/runtime/include/flatbuffers/vector.h +370 -0
  35. xmos_ai_tools/runtime/include/flatbuffers/vector_downward.h +271 -0
  36. xmos_ai_tools/runtime/include/flatbuffers/verifier.h +283 -0
  37. xmos_ai_tools/runtime/include/ioserver.h +44 -0
  38. xmos_ai_tools/runtime/include/lib_nn/api/TransposeConv.h +24 -0
  39. xmos_ai_tools/runtime/include/lib_nn/api/add_int16.h +27 -0
  40. xmos_ai_tools/runtime/include/lib_nn/api/add_int16_transform.h +42 -0
  41. xmos_ai_tools/runtime/include/lib_nn/api/dequantize_int16.h +22 -0
  42. xmos_ai_tools/runtime/include/lib_nn/api/dequantize_int16_transform.h +34 -0
  43. xmos_ai_tools/runtime/include/lib_nn/api/expand_8_to_16.h +8 -0
  44. xmos_ai_tools/runtime/include/lib_nn/api/multiply_int16.h +42 -0
  45. xmos_ai_tools/runtime/include/lib_nn/api/multiply_int16_transform.h +71 -0
  46. xmos_ai_tools/runtime/include/lib_nn/api/nn_api.h +15 -0
  47. xmos_ai_tools/runtime/include/lib_nn/api/nn_bin_types.h +14 -0
  48. xmos_ai_tools/runtime/include/lib_nn/api/nn_config.h +287 -0
  49. xmos_ai_tools/runtime/include/lib_nn/api/nn_conv2d_structs.h +72 -0
  50. xmos_ai_tools/runtime/include/lib_nn/api/nn_image.h +26 -0
  51. xmos_ai_tools/runtime/include/lib_nn/api/nn_layers.h +307 -0
  52. xmos_ai_tools/runtime/include/lib_nn/api/nn_op_helper.h +132 -0
  53. xmos_ai_tools/runtime/include/lib_nn/api/nn_op_utils.h +153 -0
  54. xmos_ai_tools/runtime/include/lib_nn/api/nn_operator.h +18 -0
  55. xmos_ai_tools/runtime/include/lib_nn/api/nn_pooling.h +551 -0
  56. xmos_ai_tools/runtime/include/lib_nn/api/nn_types.h +83 -0
  57. xmos_ai_tools/runtime/include/lib_nn/api/nn_window_params.h +55 -0
  58. xmos_ai_tools/runtime/include/lib_nn/api/output_transform_fn_int16.h +54 -0
  59. xmos_ai_tools/runtime/include/lib_nn/api/output_transform_fn_int16_kernel_transform.h +37 -0
  60. xmos_ai_tools/runtime/include/lib_nn/api/output_transform_fn_int16_mappings.h +13 -0
  61. xmos_ai_tools/runtime/include/lib_nn/api/quadratic_approximation.h +83 -0
  62. xmos_ai_tools/runtime/include/lib_nn/api/quadratic_interpolation.h +23 -0
  63. xmos_ai_tools/runtime/include/lib_nn/api/quantize_int16.h +22 -0
  64. xmos_ai_tools/runtime/include/lib_nn/api/quantize_int16_transform.h +33 -0
  65. xmos_ai_tools/runtime/include/lib_nn/api/version.h +13 -0
  66. xmos_ai_tools/runtime/include/lib_nn/api/vpu_memmove_word_aligned.h +15 -0
  67. xmos_ai_tools/runtime/include/lib_nn/api/vpu_memset_256.h +55 -0
  68. xmos_ai_tools/runtime/include/lib_nn/api/vpu_sim.h +118 -0
  69. xmos_ai_tools/runtime/include/lib_nn/api/xs3_vpu.h +216 -0
  70. xmos_ai_tools/runtime/include/lib_nn/api/xs3a_registers.h +2869 -0
  71. xmos_ai_tools/runtime/include/lib_nn/src/asm/asm_constants.h +41 -0
  72. xmos_ai_tools/runtime/include/lib_nn/src/asm/window_op_plan.h +25 -0
  73. xmos_ai_tools/runtime/include/lib_tflite_micro/api/fast_flash.h +53 -0
  74. xmos_ai_tools/runtime/include/lib_tflite_micro/api/inference_engine.h +218 -0
  75. xmos_ai_tools/runtime/include/lib_tflite_micro/api/load_weights.h +64 -0
  76. xmos_ai_tools/runtime/include/lib_tflite_micro/api/memory_parallel_transport.h +52 -0
  77. xmos_ai_tools/runtime/include/lib_tflite_micro/api/version.h +13 -0
  78. xmos_ai_tools/runtime/include/lib_tflite_micro/api/xcore_config.h +17 -0
  79. xmos_ai_tools/runtime/include/lib_tflite_micro/api/xcore_device_memory.h +62 -0
  80. xmos_ai_tools/runtime/include/lib_tflite_micro/api/xcore_shared_config.h +31 -0
  81. xmos_ai_tools/runtime/include/lib_tflite_micro/src/tflite-xcore-kernels/conv2d_float.h +155 -0
  82. xmos_ai_tools/runtime/include/lib_tflite_micro/src/tflite-xcore-kernels/xcore_custom_options.h +28 -0
  83. xmos_ai_tools/runtime/include/lib_tflite_micro/src/tflite-xcore-kernels/xcore_error_reporter.h +32 -0
  84. xmos_ai_tools/runtime/include/lib_tflite_micro/src/tflite-xcore-kernels/xcore_interpreter.h +49 -0
  85. xmos_ai_tools/runtime/include/lib_tflite_micro/src/tflite-xcore-kernels/xcore_ops.h +79 -0
  86. xmos_ai_tools/runtime/include/lib_tflite_micro/src/tflite-xcore-kernels/xcore_profiler.h +49 -0
  87. xmos_ai_tools/runtime/include/lib_tflite_micro/src/tflite-xcore-kernels/xcore_utils.h +160 -0
  88. xmos_ai_tools/runtime/include/lib_tflite_micro/src/thread_call.h +119 -0
  89. xmos_ai_tools/runtime/include/lib_xud/lib_xud/api/legacy/usb_defs.h +4 -0
  90. xmos_ai_tools/runtime/include/lib_xud/lib_xud/api/legacy/usb_device.h +4 -0
  91. xmos_ai_tools/runtime/include/lib_xud/lib_xud/api/legacy/usb_std_descriptors.h +4 -0
  92. xmos_ai_tools/runtime/include/lib_xud/lib_xud/api/legacy/usb_std_requests.h +4 -0
  93. xmos_ai_tools/runtime/include/lib_xud/lib_xud/api/xud.h +518 -0
  94. xmos_ai_tools/runtime/include/lib_xud/lib_xud/api/xud_conf_default.h +11 -0
  95. xmos_ai_tools/runtime/include/lib_xud/lib_xud/api/xud_device.h +87 -0
  96. xmos_ai_tools/runtime/include/lib_xud/lib_xud/api/xud_std_descriptors.h +191 -0
  97. xmos_ai_tools/runtime/include/lib_xud/lib_xud/api/xud_std_requests.h +120 -0
  98. xmos_ai_tools/runtime/include/lib_xud/lib_xud/src/user/XUD_USB_Defines.h +70 -0
  99. xmos_ai_tools/runtime/include/lib_xud/lib_xud/src/user/class/hid.h +23 -0
  100. xmos_ai_tools/runtime/include/lib_xud/lib_xud/src/user/class/usbaudio10.h +30 -0
  101. xmos_ai_tools/runtime/include/lib_xud/lib_xud/src/user/class/usbaudio20.h +357 -0
  102. xmos_ai_tools/runtime/include/lib_xud/lib_xud/src/user/class/usbaudiocommon.h +168 -0
  103. xmos_ai_tools/runtime/include/signal/micro/kernels/delay_flexbuffers_generated_data.h +25 -0
  104. xmos_ai_tools/runtime/include/signal/micro/kernels/energy_flexbuffers_generated_data.h +28 -0
  105. xmos_ai_tools/runtime/include/signal/micro/kernels/fft_flexbuffers_generated_data.h +37 -0
  106. xmos_ai_tools/runtime/include/signal/micro/kernels/filter_bank_flexbuffers_generated_data.h +25 -0
  107. xmos_ai_tools/runtime/include/signal/micro/kernels/filter_bank_log_flexbuffers_generated_data.h +27 -0
  108. xmos_ai_tools/runtime/include/signal/micro/kernels/filter_bank_spectral_subtraction_flexbuffers_generated_data.h +26 -0
  109. xmos_ai_tools/runtime/include/signal/micro/kernels/framer_flexbuffers_generated_data.h +25 -0
  110. xmos_ai_tools/runtime/include/signal/micro/kernels/irfft.h +31 -0
  111. xmos_ai_tools/runtime/include/signal/micro/kernels/overlap_add_flexbuffers_generated_data.h +25 -0
  112. xmos_ai_tools/runtime/include/signal/micro/kernels/pcan_flexbuffers_generated_data.h +7 -0
  113. xmos_ai_tools/runtime/include/signal/micro/kernels/rfft.h +31 -0
  114. xmos_ai_tools/runtime/include/signal/micro/kernels/stacker_flexbuffers_generated_data.h +25 -0
  115. xmos_ai_tools/runtime/include/signal/micro/kernels/window_flexbuffers_generated_data.h +25 -0
  116. xmos_ai_tools/runtime/include/signal/src/circular_buffer.h +118 -0
  117. xmos_ai_tools/runtime/include/signal/src/complex.h +29 -0
  118. xmos_ai_tools/runtime/include/signal/src/energy.h +38 -0
  119. xmos_ai_tools/runtime/include/signal/src/fft_auto_scale.h +35 -0
  120. xmos_ai_tools/runtime/include/signal/src/filter_bank.h +69 -0
  121. xmos_ai_tools/runtime/include/signal/src/filter_bank_log.h +38 -0
  122. xmos_ai_tools/runtime/include/signal/src/filter_bank_spectral_subtraction.h +73 -0
  123. xmos_ai_tools/runtime/include/signal/src/filter_bank_square_root.h +34 -0
  124. xmos_ai_tools/runtime/include/signal/src/irfft.h +84 -0
  125. xmos_ai_tools/runtime/include/signal/src/kiss_fft_wrappers/kiss_fft_common.h +49 -0
  126. xmos_ai_tools/runtime/include/signal/src/kiss_fft_wrappers/kiss_fft_float.h +31 -0
  127. xmos_ai_tools/runtime/include/signal/src/kiss_fft_wrappers/kiss_fft_int16.h +30 -0
  128. xmos_ai_tools/runtime/include/signal/src/kiss_fft_wrappers/kiss_fft_int32.h +31 -0
  129. xmos_ai_tools/runtime/include/signal/src/log.h +30 -0
  130. xmos_ai_tools/runtime/include/signal/src/max_abs.h +31 -0
  131. xmos_ai_tools/runtime/include/signal/src/msb.h +32 -0
  132. xmos_ai_tools/runtime/include/signal/src/overlap_add.h +46 -0
  133. xmos_ai_tools/runtime/include/signal/src/pcan_argc_fixed.h +41 -0
  134. xmos_ai_tools/runtime/include/signal/src/rfft.h +85 -0
  135. xmos_ai_tools/runtime/include/signal/src/square_root.h +32 -0
  136. xmos_ai_tools/runtime/include/signal/src/window.h +31 -0
  137. xmos_ai_tools/runtime/include/signal/testdata/fft_test_data.h +48 -0
  138. xmos_ai_tools/runtime/include/tensorflow/lite/array.h +156 -0
  139. xmos_ai_tools/runtime/include/tensorflow/lite/builtin_op_data.h +22 -0
  140. xmos_ai_tools/runtime/include/tensorflow/lite/builtin_ops.h +241 -0
  141. xmos_ai_tools/runtime/include/tensorflow/lite/c/builtin_op_data.h +20 -0
  142. xmos_ai_tools/runtime/include/tensorflow/lite/c/c_api_types.h +26 -0
  143. xmos_ai_tools/runtime/include/tensorflow/lite/c/common.h +30 -0
  144. xmos_ai_tools/runtime/include/tensorflow/lite/context_util.h +54 -0
  145. xmos_ai_tools/runtime/include/tensorflow/lite/core/api/error_reporter.h +72 -0
  146. xmos_ai_tools/runtime/include/tensorflow/lite/core/api/flatbuffer_conversions.h +440 -0
  147. xmos_ai_tools/runtime/include/tensorflow/lite/core/api/tensor_utils.h +28 -0
  148. xmos_ai_tools/runtime/include/tensorflow/lite/core/c/builtin_op_data.h +626 -0
  149. xmos_ai_tools/runtime/include/tensorflow/lite/core/c/c_api_types.h +178 -0
  150. xmos_ai_tools/runtime/include/tensorflow/lite/core/c/common.h +1496 -0
  151. xmos_ai_tools/runtime/include/tensorflow/lite/core/macros.h +78 -0
  152. xmos_ai_tools/runtime/include/tensorflow/lite/experimental/microfrontend/lib/bits.h +102 -0
  153. xmos_ai_tools/runtime/include/tensorflow/lite/experimental/microfrontend/lib/fft.h +50 -0
  154. xmos_ai_tools/runtime/include/tensorflow/lite/experimental/microfrontend/lib/fft_io.h +34 -0
  155. xmos_ai_tools/runtime/include/tensorflow/lite/experimental/microfrontend/lib/fft_util.h +34 -0
  156. xmos_ai_tools/runtime/include/tensorflow/lite/experimental/microfrontend/lib/filterbank.h +63 -0
  157. xmos_ai_tools/runtime/include/tensorflow/lite/experimental/microfrontend/lib/filterbank_io.h +35 -0
  158. xmos_ai_tools/runtime/include/tensorflow/lite/experimental/microfrontend/lib/filterbank_util.h +50 -0
  159. xmos_ai_tools/runtime/include/tensorflow/lite/experimental/microfrontend/lib/frontend.h +64 -0
  160. xmos_ai_tools/runtime/include/tensorflow/lite/experimental/microfrontend/lib/frontend_io.h +31 -0
  161. xmos_ai_tools/runtime/include/tensorflow/lite/experimental/microfrontend/lib/frontend_util.h +52 -0
  162. xmos_ai_tools/runtime/include/tensorflow/lite/experimental/microfrontend/lib/kiss_fft_common.h +48 -0
  163. xmos_ai_tools/runtime/include/tensorflow/lite/experimental/microfrontend/lib/kiss_fft_int16.h +33 -0
  164. xmos_ai_tools/runtime/include/tensorflow/lite/experimental/microfrontend/lib/log_lut.h +40 -0
  165. xmos_ai_tools/runtime/include/tensorflow/lite/experimental/microfrontend/lib/log_scale.h +39 -0
  166. xmos_ai_tools/runtime/include/tensorflow/lite/experimental/microfrontend/lib/log_scale_io.h +33 -0
  167. xmos_ai_tools/runtime/include/tensorflow/lite/experimental/microfrontend/lib/log_scale_util.h +45 -0
  168. xmos_ai_tools/runtime/include/tensorflow/lite/experimental/microfrontend/lib/noise_reduction.h +46 -0
  169. xmos_ai_tools/runtime/include/tensorflow/lite/experimental/microfrontend/lib/noise_reduction_io.h +36 -0
  170. xmos_ai_tools/runtime/include/tensorflow/lite/experimental/microfrontend/lib/noise_reduction_util.h +50 -0
  171. xmos_ai_tools/runtime/include/tensorflow/lite/experimental/microfrontend/lib/pcan_gain_control.h +47 -0
  172. xmos_ai_tools/runtime/include/tensorflow/lite/experimental/microfrontend/lib/pcan_gain_control_util.h +57 -0
  173. xmos_ai_tools/runtime/include/tensorflow/lite/experimental/microfrontend/lib/window.h +49 -0
  174. xmos_ai_tools/runtime/include/tensorflow/lite/experimental/microfrontend/lib/window_io.h +34 -0
  175. xmos_ai_tools/runtime/include/tensorflow/lite/experimental/microfrontend/lib/window_util.h +45 -0
  176. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/common.h +1358 -0
  177. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/compatibility.h +122 -0
  178. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/cppmath.h +40 -0
  179. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/max.h +35 -0
  180. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/min.h +35 -0
  181. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/optimized/neon_check.h +20 -0
  182. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/portable_tensor.h +141 -0
  183. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/portable_tensor_utils.h +623 -0
  184. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/quantization_util.h +292 -0
  185. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/add.h +561 -0
  186. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/add_n.h +86 -0
  187. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/arg_min_max.h +88 -0
  188. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/batch_matmul.h +275 -0
  189. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/batch_to_space_nd.h +101 -0
  190. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/binary_function.h +91 -0
  191. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/broadcast_args.h +56 -0
  192. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/broadcast_to.h +97 -0
  193. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/ceil.h +37 -0
  194. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/comparisons.h +271 -0
  195. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/concatenation.h +141 -0
  196. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/conv.h +289 -0
  197. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/cumsum.h +175 -0
  198. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/depth_to_space.h +79 -0
  199. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/depthwiseconv_float.h +100 -0
  200. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/depthwiseconv_uint8.h +319 -0
  201. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/dequantize.h +78 -0
  202. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/div.h +247 -0
  203. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/elu.h +37 -0
  204. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/exp.h +38 -0
  205. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/fill.h +38 -0
  206. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/floor.h +39 -0
  207. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/floor_div.h +35 -0
  208. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/floor_mod.h +44 -0
  209. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/fully_connected.h +323 -0
  210. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/hard_swish.h +168 -0
  211. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/integer_ops/add.h +250 -0
  212. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/integer_ops/conv.h +241 -0
  213. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/integer_ops/depthwise_conv.h +291 -0
  214. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/integer_ops/fully_connected.h +126 -0
  215. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/integer_ops/l2normalization.h +67 -0
  216. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/integer_ops/logistic.h +121 -0
  217. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/integer_ops/mean.h +18 -0
  218. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/integer_ops/mul.h +194 -0
  219. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/integer_ops/pooling.h +264 -0
  220. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/integer_ops/tanh.h +117 -0
  221. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/integer_ops/transpose_conv.h +224 -0
  222. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/l2normalization.h +90 -0
  223. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/leaky_relu.h +69 -0
  224. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/log_softmax.h +256 -0
  225. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/logistic.h +132 -0
  226. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/lstm_cell.h +422 -0
  227. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/maximum_minimum.h +64 -0
  228. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/mul.h +267 -0
  229. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/neg.h +37 -0
  230. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/pad.h +169 -0
  231. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/pooling.h +303 -0
  232. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/portable_tensor_utils.h +333 -0
  233. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/portable_tensor_utils_impl.h +244 -0
  234. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/prelu.h +111 -0
  235. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/process_broadcast_shapes.h +140 -0
  236. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/quantize.h +89 -0
  237. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/reduce.h +491 -0
  238. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/requantize.h +70 -0
  239. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/resize_bilinear.h +233 -0
  240. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/resize_nearest_neighbor.h +102 -0
  241. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/round.h +51 -0
  242. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/select.h +151 -0
  243. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/slice.h +80 -0
  244. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/softmax.h +233 -0
  245. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/space_to_batch_nd.h +109 -0
  246. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/space_to_depth.h +80 -0
  247. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/strided_slice.h +147 -0
  248. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/sub.h +465 -0
  249. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/tanh.h +129 -0
  250. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/transpose.h +203 -0
  251. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/transpose_conv.h +225 -0
  252. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/runtime_shape.h +168 -0
  253. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/strided_slice_logic.h +278 -0
  254. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/tensor_ctypes.h +42 -0
  255. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/types.h +1096 -0
  256. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/kernel_util.h +341 -0
  257. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/op_macros.h +49 -0
  258. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/padding.h +115 -0
  259. xmos_ai_tools/runtime/include/tensorflow/lite/micro/arena_allocator/ibuffer_allocator.h +100 -0
  260. xmos_ai_tools/runtime/include/tensorflow/lite/micro/arena_allocator/non_persistent_arena_buffer_allocator.h +104 -0
  261. xmos_ai_tools/runtime/include/tensorflow/lite/micro/arena_allocator/persistent_arena_buffer_allocator.h +58 -0
  262. xmos_ai_tools/runtime/include/tensorflow/lite/micro/arena_allocator/recording_single_arena_buffer_allocator.h +63 -0
  263. xmos_ai_tools/runtime/include/tensorflow/lite/micro/arena_allocator/single_arena_buffer_allocator.h +144 -0
  264. xmos_ai_tools/runtime/include/tensorflow/lite/micro/benchmarks/micro_benchmark.h +95 -0
  265. xmos_ai_tools/runtime/include/tensorflow/lite/micro/compatibility.h +32 -0
  266. xmos_ai_tools/runtime/include/tensorflow/lite/micro/cortex_m_generic/debug_log_callback.h +49 -0
  267. xmos_ai_tools/runtime/include/tensorflow/lite/micro/debug_log.h +38 -0
  268. xmos_ai_tools/runtime/include/tensorflow/lite/micro/examples/micro_speech/micro_model_settings.h +37 -0
  269. xmos_ai_tools/runtime/include/tensorflow/lite/micro/examples/network_tester/expected_output_data.h +47 -0
  270. xmos_ai_tools/runtime/include/tensorflow/lite/micro/examples/network_tester/input_data.h +108 -0
  271. xmos_ai_tools/runtime/include/tensorflow/lite/micro/examples/network_tester/network_model.h +166 -0
  272. xmos_ai_tools/runtime/include/tensorflow/lite/micro/examples/person_detection/detection_responder.h +32 -0
  273. xmos_ai_tools/runtime/include/tensorflow/lite/micro/examples/person_detection/image_provider.h +38 -0
  274. xmos_ai_tools/runtime/include/tensorflow/lite/micro/examples/person_detection/main_functions.h +37 -0
  275. xmos_ai_tools/runtime/include/tensorflow/lite/micro/examples/person_detection/model_settings.h +35 -0
  276. xmos_ai_tools/runtime/include/tensorflow/lite/micro/fake_micro_context.h +70 -0
  277. xmos_ai_tools/runtime/include/tensorflow/lite/micro/flatbuffer_utils.h +65 -0
  278. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/activation_utils.h +57 -0
  279. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/activations.h +68 -0
  280. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/add.h +78 -0
  281. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/arc_mli/mli_function_specializations.h +141 -0
  282. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/arc_mli/mli_interface.h +75 -0
  283. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/arc_mli/mli_slicers.h +56 -0
  284. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/arc_mli/mli_tf_utils.h +310 -0
  285. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/arc_mli/scratch_buf_mgr.h +145 -0
  286. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/arc_mli/scratch_buffers.h +78 -0
  287. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/ceva/ceva_common.h +24 -0
  288. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/ceva/ceva_tflm_lib.h +613 -0
  289. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/ceva/mcps_macros.h +115 -0
  290. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/ceva/types.h +1286 -0
  291. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/circular_buffer.h +45 -0
  292. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/circular_buffer_flexbuffers_generated_data.h +22 -0
  293. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/conv.h +117 -0
  294. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/conv_test.h +94 -0
  295. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/depthwise_conv.h +80 -0
  296. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/dequantize.h +38 -0
  297. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/detection_postprocess_flexbuffers_generated_data.h +25 -0
  298. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/ethosu.h +28 -0
  299. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/fully_connected.h +112 -0
  300. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/hard_swish.h +30 -0
  301. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/kernel_runner.h +86 -0
  302. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/kernel_util.h +150 -0
  303. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/leaky_relu.h +43 -0
  304. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/logical.h +35 -0
  305. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/logistic.h +42 -0
  306. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/lstm_eval.h +541 -0
  307. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/lstm_eval_test.h +817 -0
  308. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/lstm_shared.h +150 -0
  309. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/micro_ops.h +158 -0
  310. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/micro_tensor_utils.h +56 -0
  311. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/mul.h +74 -0
  312. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/pad.h +27 -0
  313. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/pooling.h +142 -0
  314. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/prelu.h +39 -0
  315. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/quantize.h +37 -0
  316. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/reduce.h +65 -0
  317. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/reshape.h +26 -0
  318. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/softmax.h +67 -0
  319. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/strided_slice.h +40 -0
  320. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/sub.h +60 -0
  321. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/svdf.h +100 -0
  322. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/testdata/conv_test_data.h +37 -0
  323. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/testdata/lstm_test_data.h +579 -0
  324. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/unidirectional_sequence_lstm.h +47 -0
  325. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/xtensa/hifimini/fixedpoint_utils.h +139 -0
  326. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/xtensa/lstm_eval.h +216 -0
  327. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/xtensa/lstm_shared.h +78 -0
  328. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/xtensa/xtensa.h +38 -0
  329. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/xtensa/xtensa_add.h +48 -0
  330. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/xtensa/xtensa_conv.h +89 -0
  331. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/xtensa/xtensa_depthwise_conv.h +74 -0
  332. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/xtensa/xtensa_fully_connected.h +78 -0
  333. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/xtensa/xtensa_pad.h +49 -0
  334. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/xtensa/xtensa_pooling.h +76 -0
  335. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/xtensa/xtensa_reduce.h +47 -0
  336. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/xtensa/xtensa_reshape.h +44 -0
  337. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/xtensa/xtensa_softmax.h +58 -0
  338. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/xtensa/xtensa_svdf.h +39 -0
  339. xmos_ai_tools/runtime/include/tensorflow/lite/micro/memory_helpers.h +64 -0
  340. xmos_ai_tools/runtime/include/tensorflow/lite/micro/memory_planner/greedy_memory_planner.h +170 -0
  341. xmos_ai_tools/runtime/include/tensorflow/lite/micro/memory_planner/linear_memory_planner.h +53 -0
  342. xmos_ai_tools/runtime/include/tensorflow/lite/micro/memory_planner/memory_plan_struct.h +73 -0
  343. xmos_ai_tools/runtime/include/tensorflow/lite/micro/memory_planner/micro_memory_planner.h +95 -0
  344. xmos_ai_tools/runtime/include/tensorflow/lite/micro/memory_planner/non_persistent_buffer_planner_shim.h +133 -0
  345. xmos_ai_tools/runtime/include/tensorflow/lite/micro/micro_allocation_info.h +138 -0
  346. xmos_ai_tools/runtime/include/tensorflow/lite/micro/micro_allocator.h +351 -0
  347. xmos_ai_tools/runtime/include/tensorflow/lite/micro/micro_arena_constants.h +28 -0
  348. xmos_ai_tools/runtime/include/tensorflow/lite/micro/micro_common.h +38 -0
  349. xmos_ai_tools/runtime/include/tensorflow/lite/micro/micro_context.h +176 -0
  350. xmos_ai_tools/runtime/include/tensorflow/lite/micro/micro_graph.h +79 -0
  351. xmos_ai_tools/runtime/include/tensorflow/lite/micro/micro_interpreter.h +189 -0
  352. xmos_ai_tools/runtime/include/tensorflow/lite/micro/micro_interpreter_context.h +125 -0
  353. xmos_ai_tools/runtime/include/tensorflow/lite/micro/micro_interpreter_graph.h +110 -0
  354. xmos_ai_tools/runtime/include/tensorflow/lite/micro/micro_log.h +42 -0
  355. xmos_ai_tools/runtime/include/tensorflow/lite/micro/micro_mutable_op_resolver.h +708 -0
  356. xmos_ai_tools/runtime/include/tensorflow/lite/micro/micro_op_resolver.h +62 -0
  357. xmos_ai_tools/runtime/include/tensorflow/lite/micro/micro_profiler.h +140 -0
  358. xmos_ai_tools/runtime/include/tensorflow/lite/micro/micro_profiler_interface.h +38 -0
  359. xmos_ai_tools/runtime/include/tensorflow/lite/micro/micro_resource_variable.h +89 -0
  360. xmos_ai_tools/runtime/include/tensorflow/lite/micro/micro_time.h +36 -0
  361. xmos_ai_tools/runtime/include/tensorflow/lite/micro/micro_utils.h +162 -0
  362. xmos_ai_tools/runtime/include/tensorflow/lite/micro/mock_micro_graph.h +60 -0
  363. xmos_ai_tools/runtime/include/tensorflow/lite/micro/python/interpreter/src/python_ops_resolver.h +21 -0
  364. xmos_ai_tools/runtime/include/tensorflow/lite/micro/python/tflite_size/src/flatbuffer_size.h +30 -0
  365. xmos_ai_tools/runtime/include/tensorflow/lite/micro/python/tflite_size/src/flatbuffer_size_wrapper.h +33 -0
  366. xmos_ai_tools/runtime/include/tensorflow/lite/micro/recording_micro_allocator.h +125 -0
  367. xmos_ai_tools/runtime/include/tensorflow/lite/micro/recording_micro_interpreter.h +69 -0
  368. xmos_ai_tools/runtime/include/tensorflow/lite/micro/system_setup.h +27 -0
  369. xmos_ai_tools/runtime/include/tensorflow/lite/micro/test_helper_custom_ops.h +49 -0
  370. xmos_ai_tools/runtime/include/tensorflow/lite/micro/test_helpers.h +334 -0
  371. xmos_ai_tools/runtime/include/tensorflow/lite/micro/testing/micro_test.h +267 -0
  372. xmos_ai_tools/runtime/include/tensorflow/lite/micro/testing/test_conv_model.h +23 -0
  373. xmos_ai_tools/runtime/include/tensorflow/lite/micro/tflite_bridge/flatbuffer_conversions_bridge.h +45 -0
  374. xmos_ai_tools/runtime/include/tensorflow/lite/micro/tflite_bridge/micro_error_reporter.h +36 -0
  375. xmos_ai_tools/runtime/include/tensorflow/lite/micro/tools/benchmarking/log_utils.h +273 -0
  376. xmos_ai_tools/runtime/include/tensorflow/lite/micro/tools/benchmarking/metrics.h +41 -0
  377. xmos_ai_tools/runtime/include/tensorflow/lite/micro/tools/benchmarking/op_resolver.h +127 -0
  378. xmos_ai_tools/runtime/include/tensorflow/lite/portable_type_to_tflitetype.h +75 -0
  379. xmos_ai_tools/runtime/include/tensorflow/lite/schema/schema_generated.h +24644 -0
  380. xmos_ai_tools/runtime/include/tensorflow/lite/schema/schema_utils.h +33 -0
  381. xmos_ai_tools/runtime/include/tile_ram_server.h +38 -0
  382. xmos_ai_tools/runtime/lib/libhost_xtflitemicro.a +0 -0
  383. xmos_ai_tools/runtime/lib/libxtflitemicro.a +0 -0
  384. xmos_ai_tools/xformer/__init__.py +64 -0
  385. xmos_ai_tools/xformer/flash.py +190 -0
  386. xmos_ai_tools/xinterpreters/__init__.py +1 -0
  387. xmos_ai_tools/xinterpreters/exceptions.py +38 -0
  388. xmos_ai_tools/xinterpreters/host_interpreter.py +651 -0
  389. xmos_ai_tools/xinterpreters/libs/macos/xtflm_python.1.0.1.dylib +0 -0
  390. xmos_ai_tools/xinterpreters/libs/macos/xtflm_python.dylib +0 -0
  391. xmos_ai_tools-1.3.2.dev180.data/data/bin/xcore-opt +0 -0
  392. xmos_ai_tools-1.3.2.dev180.dist-info/METADATA +33 -0
  393. xmos_ai_tools-1.3.2.dev180.dist-info/RECORD +395 -0
  394. xmos_ai_tools-1.3.2.dev180.dist-info/WHEEL +5 -0
  395. xmos_ai_tools-1.3.2.dev180.dist-info/top_level.txt +1 -0
@@ -0,0 +1,41 @@
1
+ // Copyright 2020-2021 XMOS LIMITED.
2
+ // This Software is subject to the terms of the XMOS Public Licence: Version 1.
3
+ #pragma once
4
+
5
+ #ifndef __ASSEMBLER__
6
+
7
+ #include <stdint.h>
8
+
9
+ #include "xs3_vpu.h"
10
+
11
+ typedef struct {
12
+ // Word offset = 0
13
+ int16_t vec_0x007F[VPU_INT8_ACC_PERIOD];
14
+ // Word offset = 8
15
+ int8_t vec_0x01[VPU_INT8_ACC_PERIOD];
16
+ // Word offset = 12
17
+ int16_t vec_0x0002[VPU_INT8_ACC_PERIOD];
18
+ // Word offset = 20
19
+ int8_t vec_0x80[VPU_INT8_EPV];
20
+ // Word offset = 28
21
+
22
+ } vpu_constants_t;
23
+
24
+ extern const vpu_constants_t vpu_vects;
25
+
26
+ extern const uint32_t vpu_vect_zero[VPU_INT32_EPV];
27
+ extern const int16_t vpu_vect_0x007F[VPU_INT16_EPV];
28
+ extern const int8_t vpu_vect_0x01[VPU_INT8_EPV];
29
+ extern const int8_t vpu_vect_0x02[VPU_INT8_EPV];
30
+ extern const int8_t vpu_vect_0x80[VPU_INT8_EPV];
31
+
32
+ #endif // __ASSEMBLER__
33
+
34
+ #define VPU_MODE_32BIT 0x0000
35
+ #define VPU_MODE_16BIT 0x0100
36
+ #define VPU_MODE_8BIT 0x0200
37
+
38
+ #define VPU_VEC_0x007F (0)
39
+ #define VPU_VEC_0x01 (8)
40
+ #define VPU_VEC_0x0002 (12)
41
+ #define VPU_VEC_0x80 (20)
@@ -0,0 +1,25 @@
1
+ // Copyright 2020-2021 XMOS LIMITED.
2
+ // This Software is subject to the terms of the XMOS Public Licence: Version 1.
3
+
4
+ #ifndef WINDOW_OP_PLAN_H_
5
+ #define WINDOW_OP_PLAN_H_
6
+
7
+ #define WOP_OUTPUT_ROWS (0)
8
+ #define WOP_OUTPUT_COLS (1)
9
+ #define WOP_OUTPUT_CHANS (2)
10
+ #define WOP_WINDOW_ROWS (3)
11
+ #define WOP_WINDOW_COLS (4)
12
+ #define WOP_START_STRIDE_X (5)
13
+ #define WOP_START_STRIDE_Y (6)
14
+ #define WOP_INNER_STRIDE_VERT (7)
15
+ #define WOP_INNER_STRIDE_HORI (8)
16
+ #define WOP_OUTER_STRIDE_VERT_X (9)
17
+ #define WOP_OUTER_STRIDE_VERT_Y (10)
18
+ #define WOP_OUTER_STRIDE_HORI_X (11)
19
+ #define WOP_OUTER_STRIDE_HORI_Y (12)
20
+ #define WOP_CHAN_STRIDE_X (13)
21
+ #define WOP_CHAN_STRIDE_Y (14)
22
+
23
+ #define WOP_WORDS (15)
24
+
25
+ #endif // WINDOW_OP_PLAN_H_
@@ -0,0 +1,53 @@
1
+ #ifndef _FAST_FLASH_H_
2
+ #define _FAST_FLASH_H_
3
+
4
+ #include <quadflash.h>
5
+
6
+ #ifdef __XC__
7
+ /** Fast flash library.
8
+ * Before calling any of the functions in here, lib_quad_flash must be initialised as normal by using
9
+ * fl_connectToDevice(qspi, flash_spec, n_flash_spec).
10
+ * After that, a call to fast_flash_init shall be made.
11
+ * After that, a sequence of calls to fast_flash_read can be made.
12
+ *
13
+ * The data partition must start with the following 32 bytes: **NOTE: REMOVE THE +4 in fast_flash_init**
14
+ *
15
+ * 0xff, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f,
16
+ * 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00,
17
+ * 0x31, 0xf7, 0xce, 0x08, 0x31, 0xf7, 0xce, 0x08,
18
+ * 0x9c, 0x63, 0x9c, 0x63, 0x9c, 0x63, 0x9c, 0x63
19
+ *
20
+ * This pattern is designed to create maximum difficulties electrically and is used
21
+ * to calibrate the electrical settings. Note that this pattern must be nibble reversed
22
+ * before being written to flash; just like all other data.
23
+ * The rest of the data partition can be used as normal
24
+ */
25
+
26
+ /** Function that initialises the fast_flash library
27
+ *
28
+ * \param qspi ports that connect to flash
29
+ *
30
+ * \returns a negative value of -1..-5 if the window is too small (size 0..4)
31
+ * zero if successful
32
+ */
33
+ int fast_flash_init(fl_QSPIPorts &qspi);
34
+
35
+ /** Function that reads a sequential set of bytes from memory.
36
+ * This function assumes that nibbles have been reversed ((x << 4) & 0xf0 | (x >> 4) & 0x0f)
37
+ * before the data was written to flash.
38
+ * Note that reading 32 bytes from offset 0 shall yield the special pattern above.
39
+ *
40
+ * \param qspi ports that connect to flash
41
+ * \param addr address in flash data segment
42
+ * \param word_count Number of words to read
43
+ * \param read_data array to store data in to.
44
+ * \param c_out_data optional channel end over which data is out() instead.
45
+ */
46
+ void fast_flash_read(fl_QSPIPorts &qspi, unsigned addr, unsigned word_count, unsigned read_data[], chanend ?c_data_out);
47
+
48
+ #else
49
+ int fast_flash_init(fl_QSPIPorts *qspi);
50
+ void fast_flash_read(fl_QSPIPorts *qspi, unsigned addr, unsigned word_count, unsigned read_data[], chanend_t c_data_out);
51
+ #endif
52
+
53
+ #endif
@@ -0,0 +1,218 @@
1
+ // Copyright (c) 2020, XMOS Ltd, All rights reserved
2
+ #ifndef INFERENCE_ENGINE_H_
3
+ #define INFERENCE_ENGINE_H_
4
+
5
+ #ifndef __XC__
6
+ #define UNSAFE /**/
7
+ #else
8
+ #define UNSAFE unsafe
9
+ #endif
10
+
11
+ #if !defined(XTFLM_DISABLED)
12
+
13
+ #if defined(__xtflm_conf_h_exists__)
14
+ #include "xtflm_conf.h"
15
+ #else
16
+
17
+ #ifndef XTFLM_OPERATORS
18
+ #define XTFLM_OPERATORS 10
19
+ #endif
20
+
21
+ #endif
22
+
23
+ #include "tensorflow/lite/c/c_api_types.h"
24
+ #include "xcore_config.h"
25
+
26
+ #ifdef __cplusplus
27
+
28
+ #include "tensorflow/lite/micro/micro_mutable_op_resolver.h"
29
+ #include "xcore_device_memory.h"
30
+ #include "xcore_error_reporter.h"
31
+ #include "xcore_interpreter.h"
32
+ #include "xcore_ops.h"
33
+ #include "xcore_profiler.h"
34
+
35
+ /** Structure that contains all the TensorFlowLite for Micro objects that must
36
+ * be allocated to create an interpreter. One of these structures has to be
37
+ * allocated for each inference engine. This structure contains C++ objects, and
38
+ * must therefore be allocated inside a C++ source file.
39
+ */
40
+ struct tflite_micro_objects {
41
+ tflite_micro::micro::xcore::XCoreErrorReporter error_reporter;
42
+ tflite_micro::micro::xcore::XCoreProfiler xcore_profiler;
43
+ uint64_t interpreter_buffer
44
+ [(sizeof(tflite_micro::micro::xcore::XCoreInterpreter) + sizeof(uint64_t) - 1) /
45
+ sizeof(uint64_t)]; // This needs to be aligned on a double word boundary
46
+ tflite_micro::MicroMutableOpResolver<XTFLM_OPERATORS> resolver;
47
+
48
+ tflite_micro::micro::xcore::XCoreInterpreter *interpreter;
49
+ const tflite_micro::Model *model;
50
+ };
51
+ #endif
52
+
53
+ #endif
54
+
55
+ // Opaque definition for the C++ struct above, used in C.
56
+ struct tflite_micro_objects;
57
+
58
+ /** Structure that contains all the data needed to describe an inference engine
59
+ * This structure contains no C++, just standard C pointers and arrays.
60
+ */
61
+ typedef struct inference_engine {
62
+ uint32_t *UNSAFE
63
+ memory_primary; ///< Pointer to space for tensor arena and optional model
64
+ uint32_t *UNSAFE
65
+ memory_secondary; ///< Pointer to secondary space. If null,
66
+ // use the primary for model and tensor arena
67
+ uint32_t
68
+ outputs; ///< Number of output tensors, initialised on loading a model.
69
+ uint32_t inputs; ///< Number of input tensors, initialised on loading a model.
70
+ uint32_t *UNSAFE
71
+ output_buffers[NUM_OUTPUT_TENSORS]; ///< Pointers to output tensors.
72
+ uint32_t *UNSAFE
73
+ input_buffers[NUM_INPUT_TENSORS]; ///< Pointers to input tensors.
74
+ uint32_t output_sizes[NUM_OUTPUT_TENSORS]; ///< Size of each output tensor in
75
+ ///< bytes.
76
+ uint32_t
77
+ input_sizes[NUM_INPUT_TENSORS]; ///< Size of each input tensor in bytes.
78
+ uint32_t output_size; ///< Total size of all outputs - TODO: obsolete?
79
+ uint32_t input_size; ///< Total size of all inputs - TODO: obsolete?
80
+ uint32_t
81
+ memory_primary_bytes; ///< Number of bytes available in primary memory
82
+ uint32_t
83
+ memory_secondary_bytes; ///< Number of bytes available in secondary memory
84
+ uint32_t
85
+ output_times_size; ///< Number of bytes available to store profiling data
86
+ uint32_t operators_size; ///< ???
87
+ uint32_t *UNSAFE output_times; ///< pointer to profiling data, one per layer
88
+ struct tflite_micro_objects *UNSAFE
89
+ xtflm; ///< Pointer to C++ XTFLM object - opaque to C
90
+ // status for the engine to maintain
91
+ uint32_t haveModel; ///< if 1: we have a model
92
+ uint32_t chainToNext; ///< if 1: we are chained (could be implicit in c_push
93
+ ///< being non-null?)
94
+ uint32_t acquireMode; ///< if non zero we're acquiring data
95
+ uint32_t outputGpioEn; // TODO: should this be here? Possibly not
96
+ int8_t outputGpioThresh[AISRV_GPIO_LENGTH];
97
+ uint8_t outputGpioMode;
98
+ uint32_t debug_log_buffer[MAX_DEBUG_LOG_LENGTH /
99
+ sizeof(uint32_t)]; ///< buffer for error messages
100
+ uint32_t arena_needed_bytes; ///< Total arena needed in bytes.
101
+ uint32_t num_threads;
102
+ struct xc_context_config_t xc_config;
103
+ } inference_engine_t;
104
+
105
+ #ifdef __cplusplus
106
+ #ifndef XTFLM_DISABLED
107
+ /** Function that initializes the inference_engine object, given a
108
+ * tflite_micro_objects object. This function has to be called from a C++ source
109
+ * files, and it performs the initialisation of the inference engine. This
110
+ * involves setting up basic pointers inside the IE object, nothing else.
111
+ *
112
+ * The function returns the operator-resolver, which must be be used to add all
113
+ * necessary operators to the inference engine. A typical calling sequence is as
114
+ * follows::
115
+ *
116
+ * uint32_t data_ext[100000/sizeof(int)];
117
+ * [...]
118
+ * static struct tflite_micro_objects s0;
119
+ * auto *resolver = inference_engine_initialize(ie,
120
+ * data_ext, 100000,
121
+ * nullptr, 0,
122
+ * &s0);
123
+ * resolver->AddAdd();
124
+ * resolver->AddConv2D();
125
+ * resolver->AddCustom(tflite_micro::ops::micro::xcore::Conv2D_V2_OpCode,
126
+ * tflite_micro::ops::micro::xcore::Register_Conv2D_V2());
127
+ * [...]
128
+ *
129
+ * Note that when tensorflow lite for micro is disabled this function will not
130
+ * exist as it depends on all and sundry in XTFLM.
131
+ *
132
+ * Note that the lifetime of all spaces passed to this function should be longer
133
+ * than the lifetime of the inference engine. Typically all spaces are declared
134
+ * globally.
135
+ *
136
+ * \param ie Pointer to an uninitialized inference engine
137
+ * object, allocated by the caller. \param memory_primary Pointer to the
138
+ * space to be used for the tensor arena, allocated by the caller. If the fourth
139
+ * parameter is null, then this space will be used for both model and tensor
140
+ * arena. \param n_primary Number of bytes available in primary memory
141
+ * \param memory_secondary Pointer to the space to be used for the model
142
+ * allocated by the caller. If this parameter is
143
+ * null, then the primary memory will be used for both model and tensor arena.
144
+ * \param n_secondary Number of bytes available in secondary memory
145
+ * \param xtflmo C++ structure for storing the XTFLM data
146
+ * structures. Must be allocated by the caller.
147
+ *
148
+ */
149
+ tflite_micro::MicroMutableOpResolver<XTFLM_OPERATORS> *inference_engine_initialize(
150
+ inference_engine_t *UNSAFE ie, uint32_t memory_primary[],
151
+ uint32_t n_memory_primary, uint32_t memory_secondary[],
152
+ uint32_t n_secondary, struct tflite_micro_objects *UNSAFE xtflmo);
153
+ #endif
154
+ extern "C" {
155
+ #endif
156
+ /** Function that unloads a model frmo the inference engine. This function
157
+ * must be called before before overwriting the model. For example, you
158
+ * have ran a model successfully, before you store a new model over the top
159
+ * of the model (from flash or anywhere else), you must first unload the
160
+ * model, then you can overwrite the model, and finally you can call the
161
+ * inference_engine_load_model to set up the new model.
162
+ *
163
+ * It is safe to call unload model if there is no model loaded.
164
+ *
165
+ * \param ie pointer to inference engine.
166
+ */
167
+ void inference_engine_unload_model(inference_engine_t *UNSAFE ie);
168
+
169
+ /** Function that loads a model into the inference engine. The model must be
170
+ * stored in either of the two spaces passed to the inference_engine_initialize
171
+ * function above: either the dedicated data_model space or the space shared
172
+ * with the tensor_arena. This funciton assumes the model is in place already
173
+ * and will simply parse it, not copy it.
174
+ *
175
+ * \param ie pointer to inference engine.
176
+ * \param model_bytes Number of bytes in the model
177
+ * \param model_data Pointer to the model (one of data_model or
178
+ * data_tensor_arena passed above) \param c_flash_or_tile Optional channel to flash
179
+ * or tile server
180
+ *
181
+ * \returns non zero indicates an error
182
+ */
183
+ #ifdef __XC__
184
+ int inference_engine_load_model(inference_engine_t * UNSAFE ie, uint32_t model_bytes, uint32_t * UNSAFE model_data, chanend ?c_flash_or_tile);
185
+ #else
186
+ int inference_engine_load_model(inference_engine_t *UNSAFE ie,
187
+ uint32_t model_bytes,
188
+ uint32_t *UNSAFE model_data, void *weights_data_ptr);
189
+ #endif
190
+
191
+ /** Function that invokes the inference engine. This function will create an
192
+ * extra four threads enabling a model to run in 5 threads.
193
+ *
194
+ * \param ie pointer to inference engine.
195
+ */
196
+ int interp_invoke_par_5(inference_engine_t *ie);
197
+ int interp_invoke_par_4(inference_engine_t *ie);
198
+ int interp_invoke_par_3(inference_engine_t *ie);
199
+ int interp_invoke_par_2(inference_engine_t *ie);
200
+ int interp_invoke(inference_engine_t *ie);
201
+ TfLiteStatus interp_invoke_internal(inference_engine_t *ie);
202
+
203
+ /** Function that resets variable tensors.
204
+ * This should be called after invoking a model with stateful ops such as LSTM.
205
+ */
206
+ int interp_reset(inference_engine_t *ie);
207
+
208
+ /** Function that prints a summary of the time each operator took. This
209
+ * function uses printf - you may want to avoid calling it.
210
+ *
211
+ * \param ie pointer to inference engine.
212
+ */
213
+ void print_profiler_summary(inference_engine_t *UNSAFE ie);
214
+ #ifdef __cplusplus
215
+ };
216
+ #endif
217
+
218
+ #endif // INFERENCE_ENGINE_H_
@@ -0,0 +1,64 @@
1
+ #ifndef _load_weights_h_
2
+ #define _load_weights_h_
3
+
4
+ #include <xcore/channel.h>
5
+ #include "thread_call.h"
6
+
7
+ #define LOAD_WEIGHTS_MAX_BLOCKS 2
8
+
9
+ /**
10
+ * Function that connects to a flash or tile-ram server and loads a series of weights.
11
+ * This function completes when the data is loaded.
12
+ *
13
+ * @param c_flash_or_tile channel-end connecting to the flash server
14
+ *
15
+ * @param data_ptr array of pointers where the loaded data should be scattered
16
+ *
17
+ * @param data_sizes_in_words number of words where for each block
18
+ *
19
+ * @param N number of blocks in data_ptr and data_sizes_in_words
20
+ *
21
+ * @param external_addr address in flash or tile ram
22
+ *
23
+ * @param model_thread_count number of threads available
24
+ *
25
+ * @param tif thread_info structure for multithreading
26
+ */
27
+ void load_weights_synchronous(chanend_t c_flash_or_tile, int *data_ptr[], int data_sizes_in_words[],
28
+ int N, int external_addr, int model_thread_count, thread_info_t *tif);
29
+
30
+ /**
31
+ * Function that connects to a flash server and loads a series of weights.
32
+ * This function continues loading after the call completes
33
+ *
34
+ * @param c_flash_or_tile channel-end connecting to the flash server
35
+ *
36
+ * @param data_ptr array of pointers where the loaded data should be scattered
37
+ *
38
+ * @param data_sizes_in_words number of words where for each block
39
+ *
40
+ * @param N number of blocks in data_ptr and data_sizes_in_words
41
+ *
42
+ * @param external_addr address in flash or tile ram
43
+ *
44
+ * @param model_thread_count number of threads available
45
+ */
46
+ void load_weights_asynchronous(chanend_t c_flash_or_tile, int *data_ptr[], int data_sizes_in_words[],
47
+ int N, int external_addr);
48
+
49
+ /**
50
+ * Function that connects to a flash server and waits for the last outstanding load to complete
51
+ * Only one asynchronous load should be outstanding at any one time.
52
+ *
53
+ * @param c_flash_or_tile channel-end connecting to the flash server
54
+ */
55
+ void load_weights_asynchronous_wait(chanend_t c_flash_or_tile);
56
+
57
+ /**
58
+ * Function that connects to a flash or tile ram server and kills it.
59
+ *
60
+ * @param c_flash_or_tile channel-end connecting to the flash server
61
+ */
62
+ void load_weights_quit(chanend_t c_flash_or_tile);
63
+
64
+ #endif
@@ -0,0 +1,52 @@
1
+ #include <stdint.h>
2
+ #include "thread_call.h"
3
+
4
+ #ifdef __XC__
5
+ #include <xs1.h>
6
+ #else
7
+ #include <xcore/chanend.h>
8
+ #endif
9
+
10
+ #ifdef __XC__
11
+
12
+ extern void memory_parallel_receive(chanend c, uint32_t data[], uint32_t bytes);
13
+ extern void memory_parallel_receive_thread_call(chanend c, uint32_t data[], uint32_t bytes, thread_info_t &ptr);
14
+ extern void memory_parallel_send(chanend c, uint32_t data[], uint32_t bytes);
15
+
16
+ #else
17
+
18
+ /** Function that receives a block of data.
19
+ * The number of bytes must be a multiple of 4.
20
+ * This function creates three threads and three channel ends in order to
21
+ * make full use of the bandwidth of the switch.
22
+ *
23
+ * \param c channel end to the sender
24
+ * \param data pointer where data must be stored
25
+ * \param bytes number of bytes that will be received.
26
+ */
27
+ extern void memory_parallel_receive(chanend_t c, uint32_t *data, uint32_t bytes);
28
+
29
+ /** Function that receives a block of data.
30
+ * The number of bytes must be a multiple of 4.
31
+ * This function assumes that at least three threads have been created by the
32
+ * thread_call library and will use those together with three fresh channel
33
+ * ends in order to make full use of the bandwidth of the switch.
34
+ *
35
+ * \param c channel end to the sender
36
+ * \param data pointer where data must be stored
37
+ * \param bytes number of bytes that will be received.
38
+ */
39
+ extern void memory_parallel_receive_thread_call(chanend_t c, uint32_t *data, uint32_t bytes, thread_info_t *ptr);
40
+
41
+ /** Function that sends a block of data.
42
+ * The number of bytes must be a multiple of 4.
43
+ * This function creates three threads and three channel ends in order to
44
+ * make full use of the bandwidth of the switch.
45
+ *
46
+ * \param c channel end to the receiver
47
+ * \param data pointer where data must be loaded frmo
48
+ * \param bytes number of bytes that will be sent.
49
+ */
50
+ extern void memory_parallel_send(chanend_t c, uint32_t *data, uint32_t bytes);
51
+
52
+ #endif
@@ -0,0 +1,13 @@
1
+ // Copyright (c) 2020, XMOS Ltd, All rights reserved
2
+ #ifndef XCORE_VERSION_H_
3
+ #define XCORE_VERSION_H_
4
+
5
+ namespace lib_tflite_micro {
6
+
7
+ static const unsigned major_version = 0;
8
+ static const unsigned minor_version = 7;
9
+ static const unsigned patch_version = 0;
10
+
11
+ } // namespace lib_tflite_micro
12
+
13
+ #endif // XCORE_VERSION_H_
@@ -0,0 +1,17 @@
1
+ #ifndef XCORE_CONFIG_H_
2
+ #define XCORE_CONFIG_H_
3
+
4
+ #include "../src/thread_call.h"
5
+
6
+ struct xc_context_config_t {
7
+ // This is the thread count specified in the compiler.
8
+ // It's used by lookup op, beta float ops etc to split up work
9
+ // in the Prepare phase.
10
+ // Conv ops have their own thread count as the thread work is
11
+ // calculated in the compiler.
12
+ int model_thread_count;
13
+ thread_info_t thread_info;
14
+ void *UNSAFE weights_data_ptr; // DDR ptr or channel to flash/tile server.
15
+ };
16
+
17
+ #endif // XCORE_CONFIG_H_
@@ -0,0 +1,62 @@
1
+ // Copyright (c) 2020, XMOS Ltd, All rights reserved
2
+ #ifndef XCORE_DEVICE_MEMORY_H_
3
+ #define XCORE_DEVICE_MEMORY_H_
4
+
5
+ #include <stddef.h>
6
+ #include <stdint.h>
7
+
8
+ #ifdef __cplusplus
9
+ extern "C" {
10
+ #endif
11
+
12
+ #ifdef XCORE
13
+ #ifdef _TIME_H_
14
+ #define _clock_defined
15
+ #endif
16
+ #include <xcore/thread.h>
17
+
18
+ #define STRINGIFY(NAME) #NAME
19
+ #define GET_STACKWORDS(DEST, NAME) \
20
+ asm("ldc %[__dest], " STRINGIFY(NAME) ".nstackwords" : [__dest] "=r"(DEST))
21
+ #define GET_STACKSIZE(DEST, NAME) \
22
+ { \
23
+ size_t _stack_words; \
24
+ asm("ldc %[__dest], " STRINGIFY(NAME) ".nstackwords" \
25
+ : [__dest] "=r"(_stack_words)); \
26
+ DEST = (_stack_words + 2) * 4; \
27
+ }
28
+ #define IS_RAM(a) (((uintptr_t)a >= 0x80000) && ((uintptr_t)a <= 0x100000))
29
+ #define IS_NOT_RAM(a) ((uintptr_t)a > 0x100000)
30
+ #define IS_EXTMEM(a) \
31
+ (((uintptr_t)a >= 0x10000000) && (((uintptr_t)a <= 0x20000000)))
32
+ #define IS_SWMEM(a) \
33
+ (((uintptr_t)a >= 0x40000000) && (((uintptr_t)a <= 0x80000000)))
34
+
35
+ #ifdef USE_SWMEM
36
+ #ifndef USE_QSPI_SWMEM_DEV
37
+ void swmem_setup();
38
+ #else
39
+ #include <xcore/chanend.h>
40
+ void swmem_setup(chanend_t ctrl_swmem_c);
41
+ #endif // USE_QSPI_SWMEM_DEV
42
+ #endif // USE_SWMEM
43
+
44
+ void swmem_handler(void *ignored);
45
+ void swmem_teardown();
46
+
47
+ #else // not XCORE
48
+
49
+ #define GET_STACKSIZE(DEST, NAME) DEST = 0
50
+ #define GET_STACKWORDS(DEST, NAME) DEST = 0
51
+ #define IS_RAM(a) (1)
52
+ #define IS_NOT_RAM(a) (0)
53
+
54
+ #endif // XCORE
55
+
56
+ void memload(void *dest, void *src, size_t size);
57
+
58
+ #ifdef __cplusplus
59
+ }
60
+ #endif
61
+
62
+ #endif // XCORE_DEVICE_MEMORY_H_
@@ -0,0 +1,31 @@
1
+ // Copyright (c) 2020, XMOS Ltd, All rights reserved
2
+ #ifndef XCORE_SHARED_CONFIG_H_
3
+ #define XCORE_SHARED_CONFIG_H_
4
+
5
+ namespace shared_config {
6
+
7
+ // This string is used as a key to store the shared config
8
+ // between xformer and lib_tflite_micro in the flatbuffer
9
+ constexpr char xcoreMetadataName[] = "xcoreSharedConfig";
10
+
11
+ struct xcore_metadata {
12
+ // Dummy variable for aligning the metadata struct to 16 bytes
13
+ // We cannot use alignas(16) yet in xcore
14
+ int32_t padding[2];
15
+ // Versions of libraries used to build the model
16
+ int32_t lib_nn_major_version;
17
+ int32_t lib_nn_minor_version;
18
+ int32_t lib_nn_patch_version;
19
+ int32_t lib_tflite_micro_major_version;
20
+ int32_t lib_tflite_micro_minor_version;
21
+ int32_t lib_tflite_micro_patch_version;
22
+ int32_t xformer_major_version;
23
+ int32_t xformer_minor_version;
24
+ int32_t xformer_patch_version;
25
+ // Number of threads required from the runtime to execute the model
26
+ int32_t required_thread_count;
27
+ };
28
+
29
+ } // namespace shared_config
30
+
31
+ #endif // XCORE_SHARED_CONFIG_H_