summaryrefslogtreecommitdiff
path: root/compiler/nnc/backends/acl_soft_backend/AclArtifactUtilities.in
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/nnc/backends/acl_soft_backend/AclArtifactUtilities.in')
-rw-r--r--compiler/nnc/backends/acl_soft_backend/AclArtifactUtilities.in29
1 files changed, 29 insertions, 0 deletions
diff --git a/compiler/nnc/backends/acl_soft_backend/AclArtifactUtilities.in b/compiler/nnc/backends/acl_soft_backend/AclArtifactUtilities.in
new file mode 100644
index 000000000..b6ce15059
--- /dev/null
+++ b/compiler/nnc/backends/acl_soft_backend/AclArtifactUtilities.in
@@ -0,0 +1,29 @@
+static void initializeTensor(arm_compute::CLTensor& tensor, const arm_compute::TensorShape& ts) {
+ arm_compute::TensorInfo ti(ts, arm_compute::Format::F32);
+ tensor.allocator()->init(ti);
+}
+
+static void fillTensor(arm_compute::CLTensor& tensor, float scalar) {
+ tensor.map();
+ arm_compute::Window window;
+ window.use_tensor_dimensions(tensor.info()->tensor_shape());
+ arm_compute::Iterator iter(&tensor, window);
+ arm_compute::execute_window_loop(window, [&scalar, &iter](const arm_compute::Coordinates&) {
+ memcpy(iter.ptr(), &scalar, sizeof(float));
+ }, iter);
+
+ tensor.unmap();
+}
+
+static void deserializeTensor(std::istream& par_in, arm_compute::CLTensor& tensor) {
+ tensor.map();
+
+ arm_compute::Window window;
+ window.use_tensor_dimensions(tensor.info()->tensor_shape());
+ arm_compute::Iterator iter(&tensor, window);
+ arm_compute::execute_window_loop(window, [&par_in, &iter](const arm_compute::Coordinates&) {
+ par_in.read(reinterpret_cast<char*>(iter.ptr()), sizeof(float));
+ }, iter);
+
+ tensor.unmap();
+}