Program Listing for File dev_mem_info.hpp

Return to documentation for file (morpheus/_lib/include/morpheus/objects/dev_mem_info.hpp)

Copy
Copied!
            

#pragma once #include "morpheus/utilities/type_util.hpp"// for DType #include "morpheus/utilities/type_util_detail.hpp" #include <rmm/device_buffer.hpp> #include <cstddef>// for size_t #include <memory>// for shared_ptr, unique_ptr & make_unique namespace morpheus { /****** Component public implementations *******************/ /****** DevMemInfo******************************************/ class DevMemInfo { public: DevMemInfo(std::shared_ptr<rmm::device_buffer> buffer, DType dtype, std::vector<std::size_t> shape, std::vector<std::size_t> stride, size_t offset_bytes = 0); DevMemInfo(DevMemInfo&& other) = default; std::size_t bytes() const; std::size_t count() const; std::size_t offset_bytes() const; const DType& dtype() const; TypeId type_id() const; const std::vector<std::size_t>& shape() const; std::size_t shape(std::size_t idx) const; // Stride in elements const std::vector<std::size_t>& stride() const; std::size_t stride(std::size_t idx) const; void* data() const; std::unique_ptr<rmm::device_buffer> make_new_buffer(std::size_t bytes) const; private: // Buffer of data std::shared_ptr<rmm::device_buffer> m_buffer; // Type of elements in the buffer const DType m_dtype; // Shape & stride of the data in the buffer const std::vector<std::size_t> m_shape; const std::vector<std::size_t> m_stride; // Offset from head of data in bytes const size_t m_offset_bytes; }; // end of group } // namespace morpheus

© Copyright 2023, NVIDIA. Last updated on Feb 3, 2023.