diff options
author | Jason Henline <jhen@google.com> | 2016-09-13 20:14:44 +0000 |
---|---|---|
committer | Jason Henline <jhen@google.com> | 2016-09-13 20:14:44 +0000 |
commit | 46b5e48fde4982b4532e9b81ed8ff9a825ac8f42 (patch) | |
tree | 5282a0701c5fad4cabefe5c3816eafb0a9a7c13b /parallel-libs | |
parent | 218c8743c8d5d18e42ee22afad2eaa9603575507 (diff) | |
download | bcm5719-llvm-46b5e48fde4982b4532e9b81ed8ff9a825ac8f42.tar.gz bcm5719-llvm-46b5e48fde4982b4532e9b81ed8ff9a825ac8f42.zip |
[SE] Use real HostPlatformDevice for testing
Summary:
Replace uses of SimpleHostPlatformDevice in tests with
HostPlatformDevice.
Reviewers: jlebar
Subscribers: jlebar, jprice, parallel_libs-commits
Differential Revision: https://reviews.llvm.org/D24519
llvm-svn: 281384
Diffstat (limited to 'parallel-libs')
5 files changed, 17 insertions, 151 deletions
diff --git a/parallel-libs/streamexecutor/include/streamexecutor/platforms/host/HostPlatformDevice.h b/parallel-libs/streamexecutor/include/streamexecutor/platforms/host/HostPlatformDevice.h index e51552d1d2d..9331fb0b88d 100644 --- a/parallel-libs/streamexecutor/include/streamexecutor/platforms/host/HostPlatformDevice.h +++ b/parallel-libs/streamexecutor/include/streamexecutor/platforms/host/HostPlatformDevice.h @@ -139,6 +139,14 @@ public: return Error::success(); } + /// Gets the value at the given index from a GlobalDeviceMemory<T> instance + /// created by this class. + template <typename T> + static T getDeviceValue(const streamexecutor::GlobalDeviceMemory<T> &Memory, + size_t Index) { + return static_cast<const T *>(Memory.getHandle())[Index]; + } + private: static void *offset(const void *Base, size_t Offset) { return const_cast<char *>(static_cast<const char *>(Base) + Offset); diff --git a/parallel-libs/streamexecutor/include/streamexecutor/unittests/CoreTests/SimpleHostPlatformDevice.h b/parallel-libs/streamexecutor/include/streamexecutor/unittests/CoreTests/SimpleHostPlatformDevice.h deleted file mode 100644 index 3c3f736e469..00000000000 --- a/parallel-libs/streamexecutor/include/streamexecutor/unittests/CoreTests/SimpleHostPlatformDevice.h +++ /dev/null @@ -1,138 +0,0 @@ -//===-- SimpleHostPlatformDevice.h - Host device for testing ----*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -/// -/// \file -/// The SimpleHostPlatformDevice class is a streamexecutor::PlatformDevice that -/// is really just the host processor and memory. It is useful for testing -/// because no extra device platform is required. -/// -//===----------------------------------------------------------------------===// - -#ifndef STREAMEXECUTOR_UNITTESTS_CORETESTS_SIMPLEHOSTPLATFORMDEVICE_H -#define STREAMEXECUTOR_UNITTESTS_CORETESTS_SIMPLEHOSTPLATFORMDEVICE_H - -#include <cstdlib> -#include <cstring> - -#include "streamexecutor/PlatformDevice.h" - -namespace streamexecutor { -namespace test { - -/// A streamexecutor::PlatformDevice that simply forwards all operations to the -/// host platform. -/// -/// The allocate and copy methods are simple wrappers for std::malloc and -/// std::memcpy. -class SimpleHostPlatformDevice : public streamexecutor::PlatformDevice { -public: - std::string getName() const override { return "SimpleHostPlatformDevice"; } - - streamexecutor::Expected<const void *> createStream() override { - return nullptr; - } - - streamexecutor::Expected<void *> - allocateDeviceMemory(size_t ByteCount) override { - return std::malloc(ByteCount); - } - - streamexecutor::Error freeDeviceMemory(const void *Handle) override { - std::free(const_cast<void *>(Handle)); - return streamexecutor::Error::success(); - } - - streamexecutor::Error registerHostMemory(void *Memory, - size_t ByteCount) override { - return streamexecutor::Error::success(); - } - - streamexecutor::Error unregisterHostMemory(const void *Memory) override { - return streamexecutor::Error::success(); - } - - streamexecutor::Error copyD2H(const void *StreamHandle, - const void *DeviceHandleSrc, - size_t SrcByteOffset, void *HostDst, - size_t DstByteOffset, - size_t ByteCount) override { - std::memcpy(static_cast<char *>(HostDst) + DstByteOffset, - static_cast<const char *>(DeviceHandleSrc) + SrcByteOffset, - ByteCount); - return streamexecutor::Error::success(); - } - - streamexecutor::Error copyH2D(const void *StreamHandle, const void *HostSrc, - size_t SrcByteOffset, - const void *DeviceHandleDst, - size_t DstByteOffset, - size_t ByteCount) override { - std::memcpy(static_cast<char *>(const_cast<void *>(DeviceHandleDst)) + - DstByteOffset, - static_cast<const char *>(HostSrc) + SrcByteOffset, ByteCount); - return streamexecutor::Error::success(); - } - - streamexecutor::Error - copyD2D(const void *StreamHandle, const void *DeviceHandleSrc, - size_t SrcByteOffset, const void *DeviceHandleDst, - size_t DstByteOffset, size_t ByteCount) override { - std::memcpy(static_cast<char *>(const_cast<void *>(DeviceHandleDst)) + - DstByteOffset, - static_cast<const char *>(DeviceHandleSrc) + SrcByteOffset, - ByteCount); - return streamexecutor::Error::success(); - } - - streamexecutor::Error synchronousCopyD2H(const void *DeviceHandleSrc, - size_t SrcByteOffset, void *HostDst, - size_t DstByteOffset, - size_t ByteCount) override { - std::memcpy(static_cast<char *>(HostDst) + DstByteOffset, - static_cast<const char *>(DeviceHandleSrc) + SrcByteOffset, - ByteCount); - return streamexecutor::Error::success(); - } - - streamexecutor::Error synchronousCopyH2D(const void *HostSrc, - size_t SrcByteOffset, - const void *DeviceHandleDst, - size_t DstByteOffset, - size_t ByteCount) override { - std::memcpy(static_cast<char *>(const_cast<void *>(DeviceHandleDst)) + - DstByteOffset, - static_cast<const char *>(HostSrc) + SrcByteOffset, ByteCount); - return streamexecutor::Error::success(); - } - - streamexecutor::Error synchronousCopyD2D(const void *DeviceHandleSrc, - size_t SrcByteOffset, - const void *DeviceHandleDst, - size_t DstByteOffset, - size_t ByteCount) override { - std::memcpy(static_cast<char *>(const_cast<void *>(DeviceHandleDst)) + - DstByteOffset, - static_cast<const char *>(DeviceHandleSrc) + SrcByteOffset, - ByteCount); - return streamexecutor::Error::success(); - } - - /// Gets the value at the given index from a GlobalDeviceMemory<T> instance - /// created by this class. - template <typename T> - static T getDeviceValue(const streamexecutor::GlobalDeviceMemory<T> &Memory, - size_t Index) { - return static_cast<const T *>(Memory.getHandle())[Index]; - } -}; - -} // namespace test -} // namespace streamexecutor - -#endif // STREAMEXECUTOR_UNITTESTS_CORETESTS_SIMPLEHOSTPLATFORMDEVICE_H diff --git a/parallel-libs/streamexecutor/unittests/CoreTests/DeviceTest.cpp b/parallel-libs/streamexecutor/unittests/CoreTests/DeviceTest.cpp index 306a9567d20..ab111e52a5a 100644 --- a/parallel-libs/streamexecutor/unittests/CoreTests/DeviceTest.cpp +++ b/parallel-libs/streamexecutor/unittests/CoreTests/DeviceTest.cpp @@ -17,7 +17,7 @@ #include "streamexecutor/Device.h" #include "streamexecutor/PlatformDevice.h" -#include "streamexecutor/unittests/CoreTests/SimpleHostPlatformDevice.h" +#include "streamexecutor/platforms/host/HostPlatformDevice.h" #include "gtest/gtest.h" @@ -25,8 +25,7 @@ namespace { namespace se = ::streamexecutor; -const auto &getDeviceValue = - se::test::SimpleHostPlatformDevice::getDeviceValue<int>; +const auto &getDeviceValue = se::host::HostPlatformDevice::getDeviceValue<int>; /// Test fixture to hold objects used by tests. class DeviceTest : public ::testing::Test { @@ -45,7 +44,7 @@ public: se::dieIfError(Device.synchronousCopyH2D<int>(HostB7, DeviceB7)); } - se::test::SimpleHostPlatformDevice PDevice; + se::host::HostPlatformDevice PDevice; se::Device Device; // Device memory is backed by host arrays. @@ -74,9 +73,7 @@ public: using llvm::ArrayRef; using llvm::MutableArrayRef; -TEST_F(DeviceTest, GetName) { - EXPECT_EQ(Device.getName(), "SimpleHostPlatformDevice"); -} +TEST_F(DeviceTest, GetName) { EXPECT_EQ(Device.getName(), "host"); } TEST_F(DeviceTest, AllocateAndFreeDeviceMemory) { se::Expected<se::GlobalDeviceMemory<int>> MaybeMemory = diff --git a/parallel-libs/streamexecutor/unittests/CoreTests/PackedKernelArgumentArrayTest.cpp b/parallel-libs/streamexecutor/unittests/CoreTests/PackedKernelArgumentArrayTest.cpp index dd8521668af..443cdde371a 100644 --- a/parallel-libs/streamexecutor/unittests/CoreTests/PackedKernelArgumentArrayTest.cpp +++ b/parallel-libs/streamexecutor/unittests/CoreTests/PackedKernelArgumentArrayTest.cpp @@ -16,7 +16,7 @@ #include "streamexecutor/DeviceMemory.h" #include "streamexecutor/PackedKernelArgumentArray.h" #include "streamexecutor/PlatformDevice.h" -#include "streamexecutor/unittests/CoreTests/SimpleHostPlatformDevice.h" +#include "streamexecutor/platforms/host/HostPlatformDevice.h" #include "llvm/ADT/Twine.h" @@ -41,7 +41,7 @@ public: TypedShared( se::SharedDeviceMemory<int>::makeFromElementCount(ElementCount)) {} - se::test::SimpleHostPlatformDevice PDevice; + se::host::HostPlatformDevice PDevice; se::Device Device; int Value; void *Handle; diff --git a/parallel-libs/streamexecutor/unittests/CoreTests/StreamTest.cpp b/parallel-libs/streamexecutor/unittests/CoreTests/StreamTest.cpp index 9d306053900..c9bbcb952ba 100644 --- a/parallel-libs/streamexecutor/unittests/CoreTests/StreamTest.cpp +++ b/parallel-libs/streamexecutor/unittests/CoreTests/StreamTest.cpp @@ -19,7 +19,7 @@ #include "streamexecutor/KernelSpec.h" #include "streamexecutor/PlatformDevice.h" #include "streamexecutor/Stream.h" -#include "streamexecutor/unittests/CoreTests/SimpleHostPlatformDevice.h" +#include "streamexecutor/platforms/host/HostPlatformDevice.h" #include "gtest/gtest.h" @@ -27,8 +27,7 @@ namespace { namespace se = ::streamexecutor; -const auto &getDeviceValue = - se::test::SimpleHostPlatformDevice::getDeviceValue<int>; +const auto &getDeviceValue = se::host::HostPlatformDevice::getDeviceValue<int>; /// Test fixture to hold objects used by tests. class StreamTest : public ::testing::Test { @@ -56,7 +55,7 @@ public: protected: int DummyPlatformStream; // Mimicking a platform where the platform stream // handle is just a stream number. - se::test::SimpleHostPlatformDevice PDevice; + se::host::HostPlatformDevice PDevice; se::Device Device; se::Stream Stream; |