// Copyright (c) Microsoft Corporation. // Licensed under the MIT license. #include #include TEST(CudaUtilsTest, AllocShared) { auto p1 = mscclpp::allocSharedCuda(); auto p2 = mscclpp::allocSharedCuda(5); } TEST(CudaUtilsTest, AllocUnique) { auto p1 = mscclpp::allocUniqueCuda(); auto p2 = mscclpp::allocUniqueCuda(5); } TEST(CudaUtilsTest, MakeSharedHost) { auto p1 = mscclpp::makeSharedCudaHost(); auto p2 = mscclpp::makeSharedCudaHost(5); } TEST(CudaUtilsTest, MakeUniqueHost) { auto p1 = mscclpp::makeUniqueCudaHost(); auto p2 = mscclpp::makeUniqueCudaHost(5); } TEST(CudaUtilsTest, Memcpy) { const int nElem = 1024; std::vector hostBuff(nElem); for (int i = 0; i < nElem; ++i) { hostBuff[i] = i + 1; } std::vector hostBuffTmp(nElem, 0); auto devBuff = mscclpp::allocSharedCuda(nElem); mscclpp::memcpyCuda(devBuff.get(), hostBuff.data(), nElem, cudaMemcpyHostToDevice); mscclpp::memcpyCuda(hostBuffTmp.data(), devBuff.get(), nElem, cudaMemcpyDeviceToHost); for (int i = 0; i < nElem; ++i) { EXPECT_EQ(hostBuff[i], hostBuffTmp[i]); } }