vector
[DEPRECATED]¶
Header file: <Kokkos_Vector.hpp>
(deprecated in Kokkos 4.3)
The Kokkos Vector is semantically similar to the std::vector, but it is designed to overcome issues with memory allocations and copies when working with devices that have different memory spaces. The Kokkos::Vector
is a Rank-1 DualView that implements the same interface as the std::vector. This allows programs that rely heavily on std::vector to grant access to program data from within a non-host execution space. Note that many of the std::vector compatible functions are host only, so access may be limited based on kernel complexity. Below is a synopsis of the class and the description for each method specifies whether it is supported on the host, device or both.
Usage¶
Kokkos::vector<Scalar, Device> v(n,1); // (deprecated since 4.3)
v.push_back(2);
v.resize(n+3);
v.[n+1] = 3;
v.[n+2] = 4;
Description¶
-
template<class Scalar, class Arg1Type = void>
class vector : public DualView<Scalar*, LayoutLeft, Arg1Type>¶ Public Typedefs
Accessors
Constructors
-
vector();¶
Construct empty vector
-
vector(int n, Scalar val = Scalar());¶
Construct vector of size n + 10% and initialize values to
val
Other Public Methods
-
void resize(size_t n);¶
Resize vector to size n + 10%
-
void assign(size_t n, const Scalar &val);¶
Set n values to
val
will auto synchronize between host and device
-
void reserve(size_t n);¶
Same as resize (for compatibility)
-
void push_back(Scalar val);¶
Resize vector to size() + 1 and set last value to val
Warning
Host only, auto synchronize device
-
void pop_back();¶
Reduce size() by 1
-
void clear();¶
Set size() to 0
-
bool empty() const;¶
Returns true if vector is empty
-
const_reference front() const;¶
Returns const reference to the front of the list
Warning
Host only
-
const_reference back() const;¶
Returns const reference to the last element in the list
Warning
Host only
-
size_t lower_bound(const size_t &start, const size_t &theEnd, const Scalar &comp_val) const;¶
Return the index of largest value satisfying val < comp_val within the range start-theEnd
Warning
Host only
-
bool is_sorted();¶
Return true if the list is sorted
-
void device_to_host();¶
Copy data from device to host
-
void host_to_device() const;¶
Copy data from host to device
-
void on_host();¶
Update/synchronize data in dual view from host perspective
-
void on_device();¶
Update/synchronize data in dual view from the device perspective
-
void set_overallocation(float extra);¶
Set the data buffer available at the end of the vector
-
constexpr bool is_allocated() const;¶
Returns true if the internal views (host and device) are allocated (non-null pointers).
-
vector();¶