COMPMID-2057: Implement and test import memory interfaces.
Change-Id: I1559bea47ae6403177d248e2f7be47d5f1a6513f
Signed-off-by: Georgios Pinitas <georgios.pinitas@arm.com>
Reviewed-on: https://review.mlplatform.org/c/956
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Michalis Spyrou <michalis.spyrou@arm.com>
diff --git a/arm_compute/core/CL/OpenCL.h b/arm_compute/core/CL/OpenCL.h
index 65cbb32..fc7083d 100644
--- a/arm_compute/core/CL/OpenCL.h
+++ b/arm_compute/core/CL/OpenCL.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2016-2018 ARM Limited.
+ * Copyright (c) 2016-2019 ARM Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -131,6 +131,9 @@
DECLARE_FUNCTION_PTR(clEnqueueMarker);
DECLARE_FUNCTION_PTR(clWaitForEvents);
+ // Third-party extensions
+ DECLARE_FUNCTION_PTR(clImportMemoryARM);
+
#undef DECLARE_FUNCTION_PTR
private:
diff --git a/arm_compute/runtime/CL/CLTensorAllocator.h b/arm_compute/runtime/CL/CLTensorAllocator.h
index de5f482..302bd6d 100644
--- a/arm_compute/runtime/CL/CLTensorAllocator.h
+++ b/arm_compute/runtime/CL/CLTensorAllocator.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2016-2018 ARM Limited.
+ * Copyright (c) 2016-2019 ARM Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -103,13 +103,17 @@
void free() override;
/** Import an existing memory as a tensor's backing memory
*
- * @warning ownership of memory is not transferred
+ * @warning memory should have been created under the same context that ACL uses.
+ * @warning memory is expected to be aligned with the device requirements.
+ * @warning tensor shouldn't be memory managed.
+ * @warning ownership of memory is not transferred.
+ * @note buffer size will be checked to be compliant with total_size reported by ITensorInfo.
*
- * @param[in] buffer Buffer to import
+ * @param[in] buffer Buffer to be used as backing memory
*
- * @return error status
+ * @return An error status
*/
- arm_compute::Status import_memory(cl::Buffer buffer);
+ Status import_memory(cl::Buffer buffer);
/** Associates the tensor with a memory group
*
* @param[in] associated_memory_group Memory group to associate the tensor with
diff --git a/arm_compute/runtime/TensorAllocator.h b/arm_compute/runtime/TensorAllocator.h
index ba9e516..f296bc2 100644
--- a/arm_compute/runtime/TensorAllocator.h
+++ b/arm_compute/runtime/TensorAllocator.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2016-2018 ARM Limited.
+ * Copyright (c) 2016-2019 ARM Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -95,11 +95,16 @@
void free() override;
/** Import an existing memory as a tensor's backing memory
*
- * @warning ownership of memory is not transferred
+ * @warning size is expected to be compliant with total_size reported by ITensorInfo.
+ * @warning ownership of memory is not transferred.
+ * @warning tensor shouldn't be memory managed.
+ * @note buffer alignment will be checked to be compliant with alignment reported by ITensorInfo.
*
- * @return error status
+ * @param[in] memory Raw memory pointer to be used as backing memory
+ *
+ * @return An error status
*/
- arm_compute::Status import_memory(void *memory, size_t size);
+ Status import_memory(void *memory);
/** Associates the tensor with a memory group
*
* @param[in] associated_memory_group Memory group to associate the tensor with