Implement host span. (#5459)
This commit is contained in:
parent
459b175dc6
commit
86beb68ce8
@ -105,6 +105,9 @@ class HostDeviceVector {
|
||||
const T* DevicePointer() const { return ConstDevicePointer(); }
|
||||
|
||||
T* HostPointer() { return HostVector().data(); }
|
||||
common::Span<T> HostSpan() { return common::Span<T>{HostVector()}; }
|
||||
common::Span<T const> HostSpan() const { return common::Span<T const>{HostVector()}; }
|
||||
common::Span<T const> ConstHostSpan() const { return HostSpan(); }
|
||||
const T* ConstHostPointer() const { return ConstHostVector().data(); }
|
||||
const T* HostPointer() const { return ConstHostPointer(); }
|
||||
|
||||
|
||||
@ -165,6 +165,15 @@ TEST(HostDeviceVector, Span) {
|
||||
auto const_span = vec.ConstDeviceSpan();
|
||||
ASSERT_EQ(vec.Size(), const_span.size());
|
||||
ASSERT_EQ(vec.ConstDevicePointer(), const_span.data());
|
||||
|
||||
auto h_span = vec.ConstHostSpan();
|
||||
ASSERT_TRUE(vec.HostCanRead());
|
||||
ASSERT_FALSE(vec.HostCanWrite());
|
||||
ASSERT_EQ(h_span.size(), vec.Size());
|
||||
ASSERT_EQ(h_span.data(), vec.ConstHostPointer());
|
||||
|
||||
h_span = vec.HostSpan();
|
||||
ASSERT_TRUE(vec.HostCanWrite());
|
||||
}
|
||||
|
||||
TEST(HostDeviceVector, MGPU_Basic) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user