| 公有成员函数 | 所有成员列表
kvikio::StreamFuture 类参考

表示异步 IO 操作的 Future。 更多...

#include <stream.hpp>

公有成员函数

 StreamFuture (void *devPtr_base, std::size_t size, off_t file_offset, off_t devPtr_offset, CUstream stream)
 
 StreamFuture (StreamFuture const &)=delete
 StreamFuture 支持移动语义,但不可复制。
 
StreamFutureoperator= (StreamFuture &o)=delete
 
 StreamFuture (StreamFuture &&o) noexcept
 
StreamFutureoperator= (StreamFuture &&o) noexcept
 
std::tuple< void *, std::size_t *, off_t *, off_t *, ssize_t *, CUstream > get_args () const
 返回 future 调用的参数。 更多...
 
std::size_t check_bytes_done ()
 返回 future 操作读取或写入的字节数。 更多...
 
 ~StreamFuture () noexcept
 释放按值传递的参数,并确保相关的 CUDA 流已同步。
 

详细描述

表示异步 IO 操作的 Future。

不应直接使用此类,而是一些流操作(例如 FileHandle.read_asyncFileHandle.write_async)返回此类的实例。使用 .check_bytes_done() 可同步相关的 CUDA 流并返回操作读取或写入的字节数。

此类有两个目标

为了支持按值传递的参数,我们在堆上分配参数 (malloc ArgByVal) 并让按引用传递的参数指向 ArgByVal。这样,read_asyncwrite_async 就可以调用 .get_args() 来获取 cuFile 流 API 所需的按引用传递的参数。

定义于文件 stream.hpp46 行。

成员函数文档

◆ check_bytes_done()

std::size_t kvikio::StreamFuture::check_bytes_done ( )

返回 future 操作读取或写入的字节数。

同步相关的 CUDA 流。

返回值
future 操作读取或写入的字节数。

◆ get_args()

std::tuple<void*, std::size_t*, off_t*, off_t*, ssize_t*, CUstream> kvikio::StreamFuture::get_args ( ) const

返回 future 调用的参数。

返回值
返回一个 tuple,包含与 FileHandle.read()FileHandle.write() 顺序一致的参数。

此类的文档生成自以下文件