Skip to content

Commit 002a069

Browse files
chloechia4mdboomleofang
authored
Add CUDA 13.0 Tests for CuFile I/O Operations (#1060)
* Add 13.0 Tests * Add first set of generated cybind bindings * Add _internal cybind generated bindings * Remove overriding tests * Add previously deleted test * Simplify test_batch_io_large_operations * fmt * add _internal bindings * add main bindings * fmt * test fmt * bindings * remove files * remove unnecessary write check * add field checks for stats * add test for get_parameter_min_max and add pytest marker * reference exposed classes for stats tests * add OpsCounter and GPUStats * add new driver pxd and pyx files * add right bindings * test fixes * add tests * Display cufile.log * Try again to get logs out * Don't hard stop when fail * Try to be a little more robust * Remove attempt to get cufile log out * Mark test as 'skip' * Remove || true * fix tests that have side effects & bugs; remove skip * stats * Pull in the latest cybind changes from https://gitlab-master.nvidia.com/leof/cybind/-/merge_requests/205 * Update get_parameter_min_max_value API * Fix test * Reset stats when changed * Disabling a broken test * bring back all cdef classes --------- Co-authored-by: Michael Droettboom <mdboom@gmail.com> Co-authored-by: Leo Fang <leof@nvidia.com>
1 parent c29fa1e commit 002a069

File tree

7 files changed

+2139
-287
lines changed

7 files changed

+2139
-287
lines changed

cuda_bindings/cuda/bindings/_internal/cufile.pxd

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
#
33
# SPDX-License-Identifier: LicenseRef-NVIDIA-SOFTWARE-LICENSE
44
#
5-
# This code was automatically generated across versions from 12.9.0 to 13.0.2. Do not modify it directly.
5+
# This code was automatically generated across versions from 12.9.1 to 13.0.2. Do not modify it directly.
66

77
from ..cycufile cimport *
88

@@ -18,6 +18,7 @@ cdef CUfileError_t _cuFileBufDeregister(const void* bufPtr_base) except?<CUfileE
1818
cdef ssize_t _cuFileRead(CUfileHandle_t fh, void* bufPtr_base, size_t size, off_t file_offset, off_t bufPtr_offset) except* nogil
1919
cdef ssize_t _cuFileWrite(CUfileHandle_t fh, const void* bufPtr_base, size_t size, off_t file_offset, off_t bufPtr_offset) except* nogil
2020
cdef CUfileError_t _cuFileDriverOpen() except?<CUfileError_t>CUFILE_LOADING_ERROR nogil
21+
cdef CUfileError_t _cuFileDriverClose() except?<CUfileError_t>CUFILE_LOADING_ERROR nogil
2122
cdef CUfileError_t _cuFileDriverClose_v2() except?<CUfileError_t>CUFILE_LOADING_ERROR nogil
2223
cdef long _cuFileUseCount() except* nogil
2324
cdef CUfileError_t _cuFileDriverGetProperties(CUfileDrvProps_t* props) except?<CUfileError_t>CUFILE_LOADING_ERROR nogil
@@ -41,7 +42,6 @@ cdef CUfileError_t _cuFileGetParameterString(CUFileStringConfigParameter_t param
4142
cdef CUfileError_t _cuFileSetParameterSizeT(CUFileSizeTConfigParameter_t param, size_t value) except?<CUfileError_t>CUFILE_LOADING_ERROR nogil
4243
cdef CUfileError_t _cuFileSetParameterBool(CUFileBoolConfigParameter_t param, cpp_bool value) except?<CUfileError_t>CUFILE_LOADING_ERROR nogil
4344
cdef CUfileError_t _cuFileSetParameterString(CUFileStringConfigParameter_t param, const char* desc_str) except?<CUfileError_t>CUFILE_LOADING_ERROR nogil
44-
cdef CUfileError_t _cuFileDriverClose() except?<CUfileError_t>CUFILE_LOADING_ERROR nogil
4545
cdef CUfileError_t _cuFileGetParameterMinMaxValue(CUFileSizeTConfigParameter_t param, size_t* min_value, size_t* max_value) except?<CUfileError_t>CUFILE_LOADING_ERROR nogil
4646
cdef CUfileError_t _cuFileSetStatsLevel(int level) except?<CUfileError_t>CUFILE_LOADING_ERROR nogil
4747
cdef CUfileError_t _cuFileGetStatsLevel(int* level) except?<CUfileError_t>CUFILE_LOADING_ERROR nogil

cuda_bindings/cuda/bindings/_internal/cufile_linux.pyx

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
#
33
# SPDX-License-Identifier: LicenseRef-NVIDIA-SOFTWARE-LICENSE
44
#
5-
# This code was automatically generated across versions from 12.9.0 to 13.0.2. Do not modify it directly.
5+
# This code was automatically generated across versions from 12.9.1 to 13.0.2. Do not modify it directly.
66

77
from libc.stdint cimport intptr_t, uintptr_t
88
import threading
@@ -68,6 +68,7 @@ cdef void* __cuFileBufDeregister = NULL
6868
cdef void* __cuFileRead = NULL
6969
cdef void* __cuFileWrite = NULL
7070
cdef void* __cuFileDriverOpen = NULL
71+
cdef void* __cuFileDriverClose = NULL
7172
cdef void* __cuFileDriverClose_v2 = NULL
7273
cdef void* __cuFileUseCount = NULL
7374
cdef void* __cuFileDriverGetProperties = NULL
@@ -91,7 +92,6 @@ cdef void* __cuFileGetParameterString = NULL
9192
cdef void* __cuFileSetParameterSizeT = NULL
9293
cdef void* __cuFileSetParameterBool = NULL
9394
cdef void* __cuFileSetParameterString = NULL
94-
cdef void* __cuFileDriverClose = NULL
9595
cdef void* __cuFileGetParameterMinMaxValue = NULL
9696
cdef void* __cuFileSetStatsLevel = NULL
9797
cdef void* __cuFileGetStatsLevel = NULL
@@ -167,6 +167,13 @@ cdef int __check_or_init_cufile() except -1 nogil:
167167
handle = load_library()
168168
__cuFileDriverOpen = dlsym(handle, 'cuFileDriverOpen')
169169

170+
global __cuFileDriverClose
171+
__cuFileDriverClose = dlsym(RTLD_DEFAULT, 'cuFileDriverClose')
172+
if __cuFileDriverClose == NULL:
173+
if handle == NULL:
174+
handle = load_library()
175+
__cuFileDriverClose = dlsym(handle, 'cuFileDriverClose')
176+
170177
global __cuFileDriverClose_v2
171178
__cuFileDriverClose_v2 = dlsym(RTLD_DEFAULT, 'cuFileDriverClose_v2')
172179
if __cuFileDriverClose_v2 == NULL:
@@ -328,13 +335,6 @@ cdef int __check_or_init_cufile() except -1 nogil:
328335
handle = load_library()
329336
__cuFileSetParameterString = dlsym(handle, 'cuFileSetParameterString')
330337

331-
global __cuFileDriverClose
332-
__cuFileDriverClose = dlsym(RTLD_DEFAULT, 'cuFileDriverClose')
333-
if __cuFileDriverClose == NULL:
334-
if handle == NULL:
335-
handle = load_library()
336-
__cuFileDriverClose = dlsym(handle, 'cuFileDriverClose')
337-
338338
global __cuFileGetParameterMinMaxValue
339339
__cuFileGetParameterMinMaxValue = dlsym(RTLD_DEFAULT, 'cuFileGetParameterMinMaxValue')
340340
if __cuFileGetParameterMinMaxValue == NULL:
@@ -462,6 +462,9 @@ cpdef dict _inspect_function_pointers():
462462
global __cuFileDriverOpen
463463
data["__cuFileDriverOpen"] = <intptr_t>__cuFileDriverOpen
464464

465+
global __cuFileDriverClose
466+
data["__cuFileDriverClose"] = <intptr_t>__cuFileDriverClose
467+
465468
global __cuFileDriverClose_v2
466469
data["__cuFileDriverClose_v2"] = <intptr_t>__cuFileDriverClose_v2
467470

@@ -531,9 +534,6 @@ cpdef dict _inspect_function_pointers():
531534
global __cuFileSetParameterString
532535
data["__cuFileSetParameterString"] = <intptr_t>__cuFileSetParameterString
533536

534-
global __cuFileDriverClose
535-
data["__cuFileDriverClose"] = <intptr_t>__cuFileDriverClose
536-
537537
global __cuFileGetParameterMinMaxValue
538538
data["__cuFileGetParameterMinMaxValue"] = <intptr_t>__cuFileGetParameterMinMaxValue
539539

@@ -656,6 +656,16 @@ cdef CUfileError_t _cuFileDriverOpen() except?<CUfileError_t>CUFILE_LOADING_ERRO
656656
)
657657

658658

659+
cdef CUfileError_t _cuFileDriverClose() except?<CUfileError_t>CUFILE_LOADING_ERROR nogil:
660+
global __cuFileDriverClose
661+
_check_or_init_cufile()
662+
if __cuFileDriverClose == NULL:
663+
with gil:
664+
raise FunctionNotFoundError("function cuFileDriverClose is not found")
665+
return (<CUfileError_t (*)() noexcept nogil>__cuFileDriverClose)(
666+
)
667+
668+
659669
cdef CUfileError_t _cuFileDriverClose_v2() except?<CUfileError_t>CUFILE_LOADING_ERROR nogil:
660670
global __cuFileDriverClose_v2
661671
_check_or_init_cufile()
@@ -887,16 +897,6 @@ cdef CUfileError_t _cuFileSetParameterString(CUFileStringConfigParameter_t param
887897
param, desc_str)
888898

889899

890-
cdef CUfileError_t _cuFileDriverClose() except?<CUfileError_t>CUFILE_LOADING_ERROR nogil:
891-
global __cuFileDriverClose
892-
_check_or_init_cufile()
893-
if __cuFileDriverClose == NULL:
894-
with gil:
895-
raise FunctionNotFoundError("function cuFileDriverClose is not found")
896-
return (<CUfileError_t (*)() noexcept nogil>__cuFileDriverClose)(
897-
)
898-
899-
900900
cdef CUfileError_t _cuFileGetParameterMinMaxValue(CUFileSizeTConfigParameter_t param, size_t* min_value, size_t* max_value) except?<CUfileError_t>CUFILE_LOADING_ERROR nogil:
901901
global __cuFileGetParameterMinMaxValue
902902
_check_or_init_cufile()

cuda_bindings/cuda/bindings/cufile.pxd

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
#
33
# SPDX-License-Identifier: LicenseRef-NVIDIA-SOFTWARE-LICENSE
44
#
5-
# This code was automatically generated across versions from 12.9.0 to 13.0.2. Do not modify it directly.
5+
# This code was automatically generated across versions from 12.9.1 to 13.0.2. Do not modify it directly.
66

77
from libc.stdint cimport intptr_t
88

@@ -18,12 +18,7 @@ ctypedef CUfileBatchHandle_t BatchHandle
1818
ctypedef CUfileError_t Error
1919
ctypedef cufileRDMAInfo_t RDMAInfo
2020
ctypedef CUfileFSOps_t FSOps
21-
ctypedef CUfileOpCounter_t OpCounter
22-
ctypedef CUfilePerGpuStats_t PerGpuStats
2321
ctypedef CUfileDrvProps_t DrvProps
24-
ctypedef CUfileStatsLevel1_t StatsLevel1
25-
ctypedef CUfileStatsLevel2_t StatsLevel2
26-
ctypedef CUfileStatsLevel3_t StatsLevel3
2722

2823

2924
###############################################################################
@@ -77,3 +72,15 @@ cpdef str get_parameter_string(int param, int len)
7772
cpdef set_parameter_size_t(int param, size_t value)
7873
cpdef set_parameter_bool(int param, bint value)
7974
cpdef set_parameter_string(int param, intptr_t desc_str)
75+
cpdef tuple get_parameter_min_max_value(int param)
76+
cpdef set_stats_level(int level)
77+
cpdef int get_stats_level() except? 0
78+
cpdef stats_start()
79+
cpdef stats_stop()
80+
cpdef stats_reset()
81+
cpdef get_stats_l1(intptr_t stats)
82+
cpdef get_stats_l2(intptr_t stats)
83+
cpdef get_stats_l3(intptr_t stats)
84+
cpdef size_t get_bar_size_in_kb(int gpu_ind_ex) except? 0
85+
cpdef set_parameter_posix_pool_slab_array(intptr_t size_values, intptr_t count_values, int len)
86+
cpdef get_parameter_posix_pool_slab_array(intptr_t size_values, intptr_t count_values, int len)

0 commit comments

Comments
 (0)