18 #include <kvikio/shim/cufile_h_wrapper.hpp>
19 #include <kvikio/shim/utils.hpp>
33 decltype(cuFileHandleRegister)* HandleRegister{
nullptr};
34 decltype(cuFileHandleDeregister)* HandleDeregister{
nullptr};
35 decltype(cuFileRead)* Read{
nullptr};
36 decltype(cuFileWrite)* Write{
nullptr};
37 decltype(cuFileBufRegister)* BufRegister{
nullptr};
38 decltype(cuFileBufDeregister)* BufDeregister{
nullptr};
39 decltype(cuFileDriverGetProperties)* DriverGetProperties{
nullptr};
40 decltype(cuFileDriverSetPollMode)* DriverSetPollMode{
nullptr};
41 decltype(cuFileDriverSetMaxCacheSize)* DriverSetMaxCacheSize{
nullptr};
42 decltype(cuFileDriverSetMaxPinnedMemSize)* DriverSetMaxPinnedMemSize{
nullptr};
43 decltype(cuFileBatchIOSetUp)* BatchIOSetUp{
nullptr};
44 decltype(cuFileBatchIOSubmit)* BatchIOSubmit{
nullptr};
45 decltype(cuFileBatchIOGetStatus)* BatchIOGetStatus{
nullptr};
46 decltype(cuFileBatchIOCancel)* BatchIOCancel{
nullptr};
47 decltype(cuFileBatchIODestroy)* BatchIODestroy{
nullptr};
48 decltype(cuFileReadAsync)* ReadAsync{
nullptr};
49 decltype(cuFileWriteAsync)* WriteAsync{
nullptr};
50 decltype(cuFileStreamRegister)* StreamRegister{
nullptr};
51 decltype(cuFileStreamDeregister)* StreamDeregister{
nullptr};
55 decltype(cuFileDriverOpen)* DriverOpen{
nullptr};
56 decltype(cuFileDriverClose)* DriverClose{
nullptr};
59 decltype(cuFileGetVersion)* GetVersion{
nullptr};
67 #ifdef KVIKIO_CUFILE_FOUND
77 void operator=(
cuFileAPI const&) =
delete;
79 void operator=(
cuFileAPI const&&) =
delete;
81 KVIKIO_EXPORT
static cuFileAPI& instance();
105 #ifdef KVIKIO_CUFILE_FOUND
132 #ifdef KVIKIO_CUFILE_FOUND
void driver_open()
打开 cuFile 驱动程序。
void driver_close()
关闭 cuFile 驱动程序。
constexpr bool is_cufile_library_available() noexcept
检查 cuFile 库是否可用。
bool is_cufile_available() noexcept
检查 cuFile 是否可用且预期能够工作。
bool is_stream_api_available() noexcept
检查 cuFile 的流 (异步) API 是否可用。
constexpr int cufile_version() noexcept
获取 cuFile 版本(如果早于 v1.8 则为零)。
bool is_batch_api_available() noexcept
检查 cuFile 的批处理 API 是否可用。