99
1010from cuda import pathfinder
1111from cuda .bindings import driver as cuda
12- from cuda .bindings import nvrtc
1312from cuda .bindings import runtime as cudart
13+ from cuda .bindings ._v2 import nvrtc
1414
1515from .helper_cuda import check_cuda_errors
1616
@@ -44,7 +44,7 @@ def __init__(self, code, dev_id):
4444 requirement_not_met (f'pathfinder.find_nvidia_header_directory("{ libname } ") returned None' )
4545 include_dirs .append (hdr_dir )
4646
47- prog = check_cuda_errors ( nvrtc .nvrtcCreateProgram (str .encode (code ), b"sourceCode.cu" , 0 , None , None ) )
47+ prog = nvrtc .create_program (str .encode (code ), b"sourceCode.cu" )
4848
4949 # Initialize CUDA
5050 check_cuda_errors (cudart .cudaFree (0 ))
@@ -55,7 +55,7 @@ def __init__(self, code, dev_id):
5555 minor = check_cuda_errors (
5656 cudart .cudaDeviceGetAttribute (cudart .cudaDeviceAttr .cudaDevAttrComputeCapabilityMinor , dev_id )
5757 )
58- _ , nvrtc_minor = check_cuda_errors ( nvrtc .nvrtcVersion () )
58+ _ , nvrtc_minor = nvrtc .version ( )
5959 use_cubin = nvrtc_minor >= 1
6060 prefix = "sm" if use_cubin else "compute"
6161 arch_arg = bytes (f"--gpu-architecture={ prefix } _{ major } { minor } " , "ascii" )
@@ -70,25 +70,19 @@ def __init__(self, code, dev_id):
7070 opts .append (f"--include-path={ inc_dir } " .encode ())
7171
7272 try :
73- check_cuda_errors (nvrtc .nvrtcCompileProgram (prog , len (opts ), opts ))
74- except RuntimeError as err :
75- log_size = check_cuda_errors (nvrtc .nvrtcGetProgramLogSize (prog ))
76- log = b" " * log_size
77- check_cuda_errors (nvrtc .nvrtcGetProgramLog (prog , log ))
73+ nvrtc .compile_program (prog , opts )
74+ except nvrtc .NvrtcError as err :
75+ log = nvrtc .get_program_log (prog )
7876 import sys
7977
8078 print (log .decode (), file = sys .stderr ) # noqa: T201
8179 print (err , file = sys .stderr ) # noqa: T201
8280 sys .exit (1 )
8381
8482 if use_cubin :
85- data_size = check_cuda_errors (nvrtc .nvrtcGetCUBINSize (prog ))
86- data = b" " * data_size
87- check_cuda_errors (nvrtc .nvrtcGetCUBIN (prog , data ))
83+ data = nvrtc .get_cubin (prog )
8884 else :
89- data_size = check_cuda_errors (nvrtc .nvrtcGetPTXSize (prog ))
90- data = b" " * data_size
91- check_cuda_errors (nvrtc .nvrtcGetPTX (prog , data ))
85+ data = nvrtc .get_ptx (prog )
9286
9387 self .module = check_cuda_errors (cuda .cuModuleLoadData (np .char .array (data )))
9488
0 commit comments