data_chunk_source.hpp
查看此文件的文档。
1 /*
2  * 版权所有 (c) 2021-2024, 英伟达公司。
3  *
4  * 根据 Apache 许可证 2.0 版(“许可证”)获得许可;
5  * 除非遵守许可证的规定,否则您不得使用此文件。
6  * 您可以在以下位置获取许可证副本:
7  *
8  * https://apache.ac.cn/licenses/LICENSE-2.0
9  *
10  * 除非适用法律要求或书面同意,否则软件
11  * 根据许可证分发,按“原样”分发,
12  * 不附带任何明示或默示的保证或条件。
13  * 有关管理权限和
14  * 许可证限制的特定语言,请参阅许可证。
15  */
16 
17 #pragma once
18 
19 #include <cudf/utilities/export.hpp>
20 #include <cudf/utilities/span.hpp>
21 
22 #include <rmm/cuda_stream_pool.hpp>
23 #include <rmm/device_buffer.hpp>
24 
25 namespace CUDF_EXPORT cudf {
26 namespace io {
27 namespace text {
28 
45  public
46  virtual ~device_data_chunk() = default;
52  [[nodiscard]] virtual char const* data() const = 0;
58  [[nodiscard]] virtual std::size_t size() const = 0;
64  virtual operator device_span<char const>() const = 0;
65 };
66 
77  public
78  virtual ~data_chunk_reader() = default;
84  virtual void skip_bytes(std::size_t size) = 0;
85 
100  virtual std::unique_ptr<device_data_chunk> get_next_chunk(std::size_t size,
101  rmm::cuda_stream_view stream) = 0;
102 };
103 
109  public
110  virtual ~data_chunk_source() = default;
111 
117  [[nodiscard]] virtual std::unique_ptr<data_chunk_reader> create_reader() const = 0;
118 };
119  // 组结束
121 
122 } // namespace text
123 } // namespace io
124 } // namespace CUDF_EXPORT cudf
一个能够生成设备内存视图的读取器。
virtual std::unique_ptr< device_data_chunk > get_next_chunk(std::size_t size, rmm::cuda_stream_view stream)=0
从数据源获取下一个字节块。
virtual void skip_bytes(std::size_t size)=0
跳过数据源中指定数量的字节。
一个能够创建读取器的数据源,该读取器可以在设备内存中生成数据源的视图...
virtual std::unique_ptr< data_chunk_reader > create_reader() const =0
获取数据源的读取器。
一个契约,保证对底层设备数据进行流式有序内存访问。
virtual char const * data() const =0
返回指向底层设备数据的指针。
virtual std::size_t size() const =0
返回底层设备数据的大小。
cuDF 接口
定义: host_udf.hpp:37
spans 的 API。
具有简化功能集的 C++20 std::span 设备版本。
定义: span.hpp:355