diff options
author | David Monahan <David.Monahan@arm.com> | 2022-01-13 10:48:33 +0000 |
---|---|---|
committer | David Monahan <David.Monahan@arm.com> | 2022-01-13 14:41:16 +0000 |
commit | 0fa1050a8cb6e7445e62a3fd1a1dce947d305cce (patch) | |
tree | 9dae2c168f16cb6f69d4e5660d7700ff7424c81b /src/backends/neon/test/NeonTensorHandleTests.cpp | |
parent | e0db4db4119369043b5518cece6f155d4c2704ca (diff) | |
download | armnn-0fa1050a8cb6e7445e62a3fd1a1dce947d305cce.tar.gz |
IVGCVSW-6674 Implement CanBeImported function in NeonTensorHandle
* Added CanBeImported function
* Updated existing checks to use the CanBeImported function
* Added Unittest
Signed-off-by: David Monahan <David.Monahan@arm.com>
Change-Id: I1fe4b9cf2a803d00f35bb16d0e312fd93503dbd8
Diffstat (limited to 'src/backends/neon/test/NeonTensorHandleTests.cpp')
-rw-r--r-- | src/backends/neon/test/NeonTensorHandleTests.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/backends/neon/test/NeonTensorHandleTests.cpp b/src/backends/neon/test/NeonTensorHandleTests.cpp index 9d69a5c2d0..c8e781b71d 100644 --- a/src/backends/neon/test/NeonTensorHandleTests.cpp +++ b/src/backends/neon/test/NeonTensorHandleTests.cpp @@ -703,6 +703,28 @@ TEST_CASE("NeonTensorHandleFactoryImport") memoryManager->Release(); } +TEST_CASE("NeonTensorHandleCanBeImported") +{ + std::shared_ptr<NeonMemoryManager> memoryManager = std::make_shared<NeonMemoryManager>( + std::make_unique<arm_compute::Allocator>(), + BaseMemoryManager::MemoryAffinity::Offset); + NeonTensorHandleFactory handleFactory(memoryManager); + TensorInfo info({ 1, 1, 2, 1 }, DataType::Float32); + + // create TensorHandle (Memory Managed status is irrelevant) + auto handle = handleFactory.CreateTensorHandle(info, false); + + // Create an aligned buffer + float alignedBuffer[2] = { 2.5f, 5.5f }; + // Check aligned buffers return true + CHECK(handle->CanBeImported(&alignedBuffer, MemorySource::Malloc) == true); + + // Create a misaligned buffer from the aligned one + float* misalignedBuffer = reinterpret_cast<float*>(reinterpret_cast<char*>(alignedBuffer) + 1); + // Check misaligned buffers return false + CHECK(handle->CanBeImported(static_cast<void*>(misalignedBuffer), MemorySource::Malloc) == false); +} + TEST_CASE("NeonTensorHandleSupportsInPlaceComputation") { std::shared_ptr<NeonMemoryManager> memoryManager = std::make_shared<NeonMemoryManager>(); |