From eddba0fcf9f938d6b30f198d398ac0fda00483b2 Mon Sep 17 00:00:00 2001 From: Alejandro Saucedo Date: Sun, 6 Sep 2020 16:15:55 +0100 Subject: [PATCH] Added test optensorsync for device and local --- single_include/kompute/Kompute.hpp | 2 +- src/Tensor.cpp | 2 +- src/include/kompute/Tensor.hpp | 2 +- test/TestOpTensorSync.cpp | 57 ++++++++++++++++++++++++++++++ test/TestOpTensorSyncDevice.cpp | 0 5 files changed, 60 insertions(+), 3 deletions(-) create mode 100644 test/TestOpTensorSync.cpp delete mode 100644 test/TestOpTensorSyncDevice.cpp diff --git a/single_include/kompute/Kompute.hpp b/single_include/kompute/Kompute.hpp index 4f3fe5ed9..9cb8e986d 100755 --- a/single_include/kompute/Kompute.hpp +++ b/single_include/kompute/Kompute.hpp @@ -235,7 +235,7 @@ class Tensor * @param data Vector of data that will be used by the tensor * @param tensorType Type for the tensor which is of type TensorTypes */ - Tensor(std::vector data, + Tensor(const std::vector& data, TensorTypes tensorType = TensorTypes::eDevice); /** diff --git a/src/Tensor.cpp b/src/Tensor.cpp index a229a5eec..4445b12ca 100644 --- a/src/Tensor.cpp +++ b/src/Tensor.cpp @@ -16,7 +16,7 @@ Tensor::Tensor() this->mTensorType = TensorTypes::eDevice; } -Tensor::Tensor(std::vector data, TensorTypes tensorType) +Tensor::Tensor(const std::vector& data, TensorTypes tensorType) { #if DEBUG SPDLOG_DEBUG( diff --git a/src/include/kompute/Tensor.hpp b/src/include/kompute/Tensor.hpp index ee34949e0..7ff471d39 100644 --- a/src/include/kompute/Tensor.hpp +++ b/src/include/kompute/Tensor.hpp @@ -42,7 +42,7 @@ class Tensor * @param data Vector of data that will be used by the tensor * @param tensorType Type for the tensor which is of type TensorTypes */ - Tensor(std::vector data, + Tensor(const std::vector& data, TensorTypes tensorType = TensorTypes::eDevice); /** diff --git a/test/TestOpTensorSync.cpp b/test/TestOpTensorSync.cpp new file mode 100644 index 000000000..111a9336c --- /dev/null +++ b/test/TestOpTensorSync.cpp @@ -0,0 +1,57 @@ + +#include "gtest/gtest.h" + +#include "kompute/Kompute.hpp" + +TEST(TestOpTensorSync, SyncToDeviceMemorySingleTensor) { + + kp::Manager mgr; + + std::vector testVecPreA{ 0, 0, 0 }; + std::vector testVecPostA{ 9, 8, 7 }; + + std::shared_ptr tensorA{new kp::Tensor(testVecPreA)}; + + mgr.evalOpDefault({tensorA}); + + EXPECT_TRUE(tensorA->isInit()); + + tensorA->setData(testVecPostA); + + mgr.evalOpDefault({tensorA}); + + mgr.evalOpDefault({tensorA}); + + EXPECT_EQ(tensorA->data(), testVecPostA); +} + +TEST(TestOpTensorSync, SyncToDeviceMemoryMultiTensor) { + + kp::Manager mgr; + + std::vector testVec{ 9, 8, 7 }; + + std::shared_ptr tensorA{new kp::Tensor({0, 0, 0})}; + std::shared_ptr tensorB{new kp::Tensor({0, 0, 0})}; + std::shared_ptr tensorC{new kp::Tensor({0, 0, 0})}; + + mgr.evalOpDefault({tensorA, tensorB, tensorC}); + + EXPECT_TRUE(tensorA->isInit()); + EXPECT_TRUE(tensorB->isInit()); + EXPECT_TRUE(tensorC->isInit()); + + tensorA->setData(testVec); + + mgr.evalOpDefault({tensorA}); + + mgr.evalOpDefault({tensorA, tensorB, tensorC}); + + mgr.evalOpDefault({tensorA, tensorB, tensorC}); + + EXPECT_EQ(tensorA->data(), testVec); + EXPECT_EQ(tensorB->data(), testVec); + EXPECT_EQ(tensorC->data(), testVec); + +} + diff --git a/test/TestOpTensorSyncDevice.cpp b/test/TestOpTensorSyncDevice.cpp deleted file mode 100644 index e69de29bb..000000000