// SPDX-License-Identifier: Apache-2.0 #include "gtest/gtest.h" #include "kompute/Kompute.hpp" #include "kompute/logger/Logger.hpp" TEST(TestOpTensorSync, SyncToDeviceMemorySingleTensor) { kp::Manager mgr; std::vector testVecPreA{ 0, 0, 0 }; std::vector testVecPostA{ 9, 8, 7 }; std::shared_ptr> tensorA = mgr.tensor(testVecPreA); EXPECT_TRUE(tensorA->isInit()); tensorA->setData(testVecPostA); mgr.sequence()->eval({ tensorA }); mgr.sequence()->eval({ tensorA }); EXPECT_EQ(tensorA->vector(), testVecPostA); } TEST(TestOpTensorSync, SyncToDeviceMemoryMultiTensor) { kp::Manager mgr; std::vector testVec{ 9, 8, 7 }; std::shared_ptr> tensorA = mgr.tensor({ 0, 0, 0 }); std::shared_ptr> tensorB = mgr.tensor({ 0, 0, 0 }); std::shared_ptr> tensorC = mgr.tensor({ 0, 0, 0 }); EXPECT_TRUE(tensorA->isInit()); EXPECT_TRUE(tensorB->isInit()); EXPECT_TRUE(tensorC->isInit()); tensorA->setData(testVec); mgr.sequence()->eval({ tensorA }); mgr.sequence()->eval({ tensorA, tensorB, tensorC }); mgr.sequence()->eval({ tensorA, tensorB, tensorC }); EXPECT_EQ(tensorA->vector(), testVec); EXPECT_EQ(tensorB->vector(), testVec); EXPECT_EQ(tensorC->vector(), testVec); }