7#include <dr/sp/allocators.hpp>
8#include <dr/sp/device_vector.hpp>
12template <
typename T,
typename Allocator = dr::sp::device_allocator<T>>
18 using size_type = std::size_t;
19 using difference_type = std::ptrdiff_t;
21 using allocator_type = Allocator;
28 for (
auto &&device : dr::sp::devices()) {
29 segments_.emplace_back(
30 segment_type(size(), Allocator(dr::sp::context(), device), rank++));
34 size_type size()
const noexcept {
return size_; }
36 segment_type &local_vector(std::size_t rank) {
return segments_[rank]; }
38 const segment_type &local_vector(std::size_t rank)
const {
39 return segments_[rank];
43 std::vector<segment_type> segments_;
44 std::size_t capacity_ = 0;
45 std::size_t size_ = 0;
Definition: device_vector.hpp:13
Definition: duplicated_vector.hpp:13