#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); }