summaryrefslogtreecommitdiff
path: root/parallel-libs
diff options
context:
space:
mode:
authorJason Henline <jhen@google.com>2016-09-13 20:14:44 +0000
committerJason Henline <jhen@google.com>2016-09-13 20:14:44 +0000
commit62c4c6a7b4dbc2b1b2ecc8eb302dfc4f5f42520a (patch)
treef8a69880713b3c544e07c580091909c22f3da454 /parallel-libs
parent9b5aa8e2316eb648fb797576a819db5029afb45f (diff)
[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
Diffstat (limited to 'parallel-libs')
-rw-r--r--parallel-libs/streamexecutor/include/streamexecutor/platforms/host/HostPlatformDevice.h8
-rw-r--r--parallel-libs/streamexecutor/include/streamexecutor/unittests/CoreTests/SimpleHostPlatformDevice.h138
-rw-r--r--parallel-libs/streamexecutor/unittests/CoreTests/DeviceTest.cpp11
-rw-r--r--parallel-libs/streamexecutor/unittests/CoreTests/PackedKernelArgumentArrayTest.cpp4
-rw-r--r--parallel-libs/streamexecutor/unittests/CoreTests/StreamTest.cpp7
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;